Несколько недель назад к нам обратился наш клиент за помощью. Ранее мы настраивали ему учетную запись провайдера от поставщика услуг Mango Office. Всё работало прекрасно, но в один прекрасный день перестали поступать входящие звонки на АТС.
Во время удаленного подключения к клиенту мы заметили в системных логах Askozia следующую ошибку:
2017-09-05 17:01:10 asterisk[16543]: NOTICE[16666]: chan_sip.c:23808 in handle_request_invite: Call from '' (172.16.XX.XXX:59893) to extension '84952293042' rejected because extension not found in context 'public-direct-dial'.
Клиент попытался позвонить на номер компании 84952293042, но вызов оборвался. Наше первое предположение было связано с возможностью поступления звонка по протоколу SIP без авторизации, то есть используя адресацию SIP URI. Мы не ошиблись. Делимся с Вами решением данной проблемы на конкретном примере.
Обращаем Ваше внимание на безопасность в Askozia! Не следует ниже описанные действия выполнять для всех extension (для нашего примера это номер 84952293042), которые отображаются у Вас в системных логах. Следует указывать только те номера, по которым есть договоренность с поставщиком услуг связи.
Постановка задачи
Номер нашей компании 84952293042. Необходимо обеспечить возможность поступления входящих звонков по протоколу SIP без авторизации, используя адресацию SIP URI. То есть при звонке на номер 84952293042@demo.askozia.ru вызов должен быть направлен на определённый маршрут вызова в Askozia.
Звонки могут осуществлять софтфоны, которые могут звонить без регистрации или различные web-сервисы.
Что такое SIP URI?
SIP URI – это схема адресации SIP, используемая для вызова абонента с помощью SIP. Другими словами, SIP URI является номером SIP-телефона пользователя. SIP URI похож на адрес электронной почты и записывается в следующем формате:
SIP URI = sip:x@y:Port где x=имя пользователя и y=хост (домен или IP)
Пример: sip:84952293042@demo.askozia.ru
Стандарт SIP URI определен в рекомендации RFC 3261.
Настройка Askozia
- Переходим в учетную запись провайдера, через которого мы будем принимать вызовы по SIP URI. Для этого перейдём в web-интерфейс на закладку Учетные записи -> Провайдеры и откроем учетную запись провайдера для редактирования.
- Переходим на вкладку Маршрутизация вызовов -> Входящий номер. Указываем, что при звонке на номер 84952293042 вызов будет направлен на маршрут вызова с номером 302.
Переходим на вкладку Дополнительно -> Manual Dialplan Global. Вставляем в это поле следующие строчки:
[globals](+) MIKO_CONTEXT= SIP-PROVIDER-153130785659a54d9d53d8e-incoming
[public-direct-dial](+) exten => 84952293042,1,Goto(${MIKO_CONTEXT},${EXTEN},1)
SIP-PROVIDER-153130785659a54d9d53d8e-incoming - контекст провайдера для приёма входящих звонков. Чтобы определить контекст провайдера, перейдите в адресную строку браузера и скопируйте контекст, как показано на рисунке ниже. К скопируемому контексту добавьте постфикс -incoming.
84952293042 - номер нашей компании, на который будет звонить клиент
Таким образом, необходимые настройки со стороны Askozia мы произвели.