VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Asterisk контекст приема звонка.

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
fil23
Сообщения: 18
Зарегистрирован: 18 май 2015, 14:58

Asterisk контекст приема звонка.

Сообщение fil23 »

Доброго дня.
Завожу оператора связи в SIP файле.

Код: Выделить всё

[general]
register=4631267:password@sip01.avantel.ru ;регистрируемся на стороне провайдера. IDuser:password@SIPserverProvaider
alwaysauthreject=yes    ;не выдаем детального сообщения причины почему нет подключения.

[Operator_SIP]
type=peer               ;указываем что при получении INVITE(вызов) будем сравнивать не имя поставщика сервисов а его IP адрес
host=sip01.avantel.ru   ;указываем от кого мы должны получать/отправлять INVITE
fromuser=4631267        ;имя пользователя для аутентификации
defaultuser=4631267
secret=password
context=incoming_calls  ;задаем контекс, на него же будем принимать звонки
dtmfmode=rfc2833        ;метод генерации тонального DTFM-кода
disallow=all            ;запрещаем все кодеки
allow=ulaw
allow=gsm               ;разрешаем кодек GSM
insecure=invite         ;
И в данной реализации приходящий вызов попадает в нужный мне контекст в диалплане.

Код: Выделить всё

[globals]
NUMBERGARS=4631267

[default]

[incoming_calls]
exten => ${NUMBERGARS},1,Set(TIMEOUT(digit)=2)
exten => ${NUMBERGARS},n,Verbose(1,Получен звонок с внешней линии)
exten => ${NUMBERGARS},n,Answer()                                                               ;отвечаем
exten => ${NUMBERGARS},n(met1),Background(/var/lib/asterisk/sounds/ru/soundgars/hellogars)      ;воспроизводим приветствие
exten => ${NUMBERGARS},n,WaitExten(3)                                                           ;ждем реакции
exten => ${NUMBERGARS},n,Goto(managers,s,1)                                                     ;если абанюга ни чего не нажал то переводим его на мэенеджеров
exten => ${NUMBERGARS},n,Hangup()


Во втором случае

Другой оператор связи.

Код: Выделить всё


[general]
register=2016823:password@95.172.154.104:5061 ;регистрируемся на стороне провайдера. IDuser:password@SIPserverProvaider
alwaysauthreject=yes    ;не выдаем детального сообщения причины почему нет подключения.
directmedia=nonat;

[Operator_SIP]
type=peer               ;указываем что при получении INVITE(вызов) будем сравнивать не имя поставщика сервисов а его IP адрес
host=95.172.154.104     ;указываем от кого мы должны получать/отправлять INVITE
port=5061
fromuser=2016823                ;имя пользователя для аутентификации
defaultuser=2016823
secret=password
context=incoming_calls  ;задаем контекс, на него же будем принимать звонки
dtmfmode=rfc2833        ;метод генерации тонального DTFM-кода
disallow=all            ;запрещаем все кодеки
allow=ulaw
allow=gsm               ;разрешаем кодек GSM
insecure=invite         ;
при таком же расскладе диалплана , только переменная NUMBERGARS=2016823. Астериск выдает что мол, все хорошо только я в контексте не вижу 's'.

Т.е. я понимаю что s - это start . Но почему в первом случае он норм работал как я и задумывал, а во втором он диктует мне свои условия? :)

Спасибо.
ded
Сообщения: 15631
Зарегистрирован: 26 авг 2010, 19:00

Re: Asterisk контекст приема звонка.

Сообщение ded »

Потому что SIP слишком гибкий, и не существует для всех провайдеров Единого Закона Подключения клиентов по SIP. Каждый своё рисует.
Делаете так например:
register=2016823:password@95.172.154.104:5061/4952016823 ; регистрируете московский номер от Гарс Телеком 4952016823
register=4631267:password@sip01.avantel.ru/4954631267 ; регистрируете московский номер от Авантел 4954631267

и разруливаете пусть и в одном контексте, но по полю То:
то есть
[incoming_calls]
exten => 4952016823,1,Goto(DID1)
exten => 4954631267,1,Goto(DID2)
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH