Регистрация мультииндексного транка на 1 register

Как подключиться по протоколу  SIP к поставщику услуг при одиночной регистрации, но с возможностью принятия звонков с более 1 линии. Или «SIP-транк с регистрацией»

От оператора получаем: LoginId, Secret, Registrar.

LoginID – 7-и значный номер в виде 1234567, он и юзернейм для регистрации, и идентификатор линии.

Также в данную регистрацию оператор предоставляет пул номеров: 1234568-1234599

Если произвести регистрацию как для обычной линии:

Register => 1234567:PWD@operator/1234567

то все входящие звонки будут поступать исключительно с индексом 1234567 и обработать в dial plan остальной пул номеров будет не возможно т.к. вызовы будут отбиваться с сообщением fake auth rejected.

На самом деле, это абсолютно верное поведение астериска, так и должно быть (хотя в новых версиях insecure=port,invite позволяет начхать на то, какой там exten прописан в register string)

Во избежание головной боли, приводим строку регистрации в следующий вид:

Register => 1234567:PWD@operator/s

[operator]
host=_IP Address
type=peer
defaultuser=1234567
fromuser=1234567
fromdoamin=Registrar
secret=_PWD
insecure=port,invite
context=from-trunk
qualify=no

Все входящие звонки будут поступать в контекст from-trunk на обработчик s.

Достанем из SIP_HEADER идентификатор  линии:

[from-trunk]
exten => s,1,Set(ID=${SIP_HEADER(TO):5:10})
exten => s,2,Set(ID=${CUT(ID,@,1)})
exten => s,3,Goto(${ID},1)
exten => 1234567,1,Dial(SIP/111)
exten => 1234568,1,Dial(SIP/222)
exten => _12345[789]X,1,Queue(internet, 600)

PROFIT!

Добавить комментарий

Войти с помощью: