Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
[tario_out]
type=peer
host=адрес_сервера_tario
username= номер_лицевого_счета_tario
fromusername=номер_лицевого_счета_tario
fromdomain=домен_tario
secret= пароль_tario
usereqphone=yes
Для входящих вызовов:
register => номер_лицевого_счета_tario:пароль@tario_in
[tario_in]
type=user
context=tario_inc
host=ip_адрес_сервера_tario
Для исходящих звонков через этого провайдера будем использовать префикс 8. В контексте [office] добавим следующую строчку:
exten => _8, Dial(SIP/${EXTEN:1}@tario_out,20,rT)
Конструкция EXTEN:1 означает то, что при передаче звонка шлюзу провайдера первый символ будет отбрасываться.
Все входящие звонки от провайдера будем принимать в контекст [tario_inc]. Его можно сконфигурировать примерно так:
[tario_inc]
exten => s,1,Wait, 1
exten => s, 2, Answer
exten => s,3, BackGround(local-welcomе)
exten => s,4, WaitExten
exten => 200,1, Macro(stdexten,200,SIP/200)
exten => 201,1, Macro(stdexten,201,SIP/201)
exten => 202,1, Macro(stdexten,202,SIP/202)
exten => 8500,1, VoiceMailMain
exten => 8500,n, Hangup
При звонке в этот контекст пользователь сначала услышит сообщение local-welcome (сообщение нужно будет предварительно записать), в котором его попросят ввести добавочный номер вызываемого абонента. После введения номера звонящего соединят с требуемым пользователем, если же этот пользователь недоступен, звонивший получит возможность оставить сообщение голосовой почты. Подобно доступу к шлюзу голосовой почты мы также можем предоставить доступ к другим функциям Asterisk.
Несколько слов о безопасности
При определении контекстов, доступ к которым будут получать внешние пользователи, необходимо дважды (а то и трижды) подумать. Так, если бы в последнем примере вместо «ручного» создания правил для дозвона до каждого пользователя мы бы просто написали:
include => office
то все внешние пользователи, звонящие на наш сервер, помимо вполне легального доступа к внутренним номерам и серверу голосовой почты также получили бы не совсем легальный доступ к междугородним звонкам с использованием нашего провайдера. Однако дублировать записи вызова тоже не слишком красиво, поэтому более правильно было бы перенести все доступные извне правила маршрутизации в отдельный контекст [office-rules], а в контексте [office] вместо них написать так:
[office]
include => [office-rules]
exten => _8, Dial(SIP/${EXTEN:1}@tario_out,20,rT
После этого в контексте [tario-inc] вместо повторного перечисления правил дозвона до пользователей можно смело написать include => [office-rules]. При такой схеме office-rules не содержит ничего лишнего, и соответственно воспользоваться нашим «межгородом» внешние пользователи уже не смогут.