Меню

Asterisk настройка исходящего звонка



Базовая настройка Asterisk 11 в Debian Wheezy: входящие и исходящие звонки

Aug 20, 2015 11:34 · 630 words · 3 minute read asterisk debian

Продолжаем настраивать сервер телефонии на базе Asterisk 11 в Debian Wheezy — у нас уже работают звонки внутри офиса и голосовая почта, пора заняться настройкой входящих и исходящих звонков.

Под входящими/исходящими звонками будем иметь в виду звонки, в которых вызывающий (или вызываемый) абонент находится за пределами офиса. Для совершения таких звонков можно использовать протокол H.323 или более распространенный и перспективный протокол SIP. За счет простоты реализации, связь по протоколу SIP становится все более популярной услугой, которую предоставляют множество провайдеров Интернет-телефонии.

Поддержка протокола SIP в Asterisk встроена по умолчанию, поэтому как только мы заключим договор с провайдером и получим от него учетные данные, можно сразу же приступать к настройке входящих и исходящих звонков.

Для этого откроем файл /etc/asterisk/sip.conf и в секции [general] добавим определение register в следующем формате:

  • user — идентификатор пользователя, используемый SIP-сервером (например, лицевой счет);
  • authuser — необязательное имя пользователя для авторизации на SIP-сервере;
  • secret — пароль пользователя для авторизации на SIP-сервере;
  • host — имя домена или хоста SIP-сервера. Данный SIP-сервер необходимо описать в своей секции в файле sip.conf ;
  • port — номер порта, для регистрации на сервере host . По умолчанию — 5060;
  • extension — номер екстеншена для приема вызовов в вашем Asterisk’е.

В нашем случае получится примерно следующее:

Примечание. На мой взгляд, использование незашифрованных паролей в текстовом файле — не самая удачная идея, но что уж тут поделать…

Для каждого SIP-сервера нужно создать свою секцию в файле /etc/asterisk/sip.conf , в которой должны быть описаны его параметры. В данном примере используется один SIP-сервер провайдера, но с двумя разными телефонными номерами (лицевыми счетами) — киевским и днепропетровским. Следовательно, будем использовать шаблоны, как мы уже делали ранее.

  • сначала создаем шаблон (общие параметры для всех лицевых счетов провайдера):
  • теперь указываем отдельные параметры для каждого лицевого счета:

Для совершения входящих и исходящих звонков через SIP-сервер данного провайдера необходимо также изменить номерной план. В большинстве инструкций, которые мне доводилось встречать, исходящие звонки предлагают настраивать через дополнительную цифру (например, 9) и примерно следующую строку в файле /etc/asterisk/extensions.conf :

Примечание. Конструкция $ извлекает содержимое переменной за исключением первой цифры, в которой содержится вызываемый екстеншен.

Но так как у нас два телефонных номера, разумнее и экономнее будет разделить исходящие звонки по коду города. Еще мы умеем записывать телефонные звонки, поэтому в нашем случае в номерной план Asterisk’а нужно добавить следующие строки:

Входящие звонки на выданные SIP-провайдером номера (441233211 и 561233211) будем принимать в контекст [beeline-in] . Его можно сконфигурировать примерно так:

Давайте разберемся, что произойдет при входящем звонке на любой из телефонных номеров выданных провайдером:

  • звонок на внутренний номер 101;
  • если номер 101 не отвечает в течении 10 секунд, то звонок попадает в очередь office_all ;
  • если в течении 15 секунд никто из очереди не отвечает, то проигрываем сообщение «в данный момент никто не может принять ваш звонок»;
  • предлагаем оствить сообщение голосовой почты и отправляем его в голосовой ящик абонента 101;
  • прощаемся со звонящим и завершаем звонок.

Примечание. Настройку статических очередей звонков в Asterisk’е рассмотрим в следующей статье.

На этом базовая настройка входящих/исходящих звонков в Asterisk закончена.

Источник

FreePBX 13/14 исходящая маршрутизация.

Outbound Routes — исходящая маршрутизация FreePBX. На основании набранного номера выбирается направление (транк) для исходящего вызова. Набираемый номер делится на префикс и паттерн и может модифицироваться после набора. Подробное описание паттернов, callerid, записи и др. параметров

Читайте также:  Плагин antispam bee настройка

Connectivity > Outbound Routes
Подключения > Исходящая Маршрутизация

Порядок выбора маршрутов

Маршруты проверяются в порядке перечисления.
Например, если у вас есть два маршрута с совпадающими паттернами, сначала FreePBX попытается использовать маршрут выше по списку, а если он недоступен, последующий.

Вы можете изменять порядок использования маршрута перетаскивая мышью на другую позицию.
Маршруты проверяются по порядку — сверху вниз. Если найдено совпадение, дальнейшая проверка прекращается.

Route Settings

Настройки маршрутов

Route Name

Название маршрута.
Используйте имена, которые помогут вам легко идентифицировать маршрут. Например по имени провайдера, или направлению: ‘local’ для городских вызовов, а ‘long distance’ для междугородних.

Route CID

Задайте общий CallerID для данного маршрута. Данный идентификатор будет использован, если в настройках екстеншена не задан Outbound CallerID. Также исходящий CID внутреннего номера будет принудительно заменен на указанный здесь, если опция Override Extension включена.
В сетях связи России, принято передавать CallerID в десяти-значном формате . Обычно провайдер ждет CallerID именно в таком формате, если не оговорено другое. Неправильно заданный идентификатор, может блокировать исходящие вызовы, т.к. многие SIP провайдеры, требуют указания CallerID из пула номеров, привязанного к SIP аккаунту. Этого же требует и закон о связи.

Override Extension

Перезаписать CallerID екстеншена
Если включено (да), Outbound Caller ID екстеншена будет заменен значением указанным в Route CID. При этом исходящий Caller ID для вызова экстренных служб по прежнему будет использоваться, если маршрут помечен для вызова экстренных служб, а в установках внутреннего номера определён Emergency CID.

Закрывать весь маршрут общим CallerID, или указывать Outbound CallerID для каждого екстеншена, зависит от требований вашей внутренней инфраструктуры связи и поставленных задач. Определенно проще указать один CallerID в маршруте, но не всегда это возможно.

Route Password

Пароль на маршрут.
Необязательно. При вызове через этот маршрут будет запрошен пароль. Это может быть полезным для ограничения вызовов на международные направления или другие платные номера.Используйте пароль только из цифр или укажите путь к файлу паролей для аутентификации. Оставьте поле пустым, если пароль не требуется.

Route Type

Тип маршрута.
Необязательно. Выбор в типа маршрута ‘Emergency’ принудительно подставит Emergency CID заданный в настройках екстеншена, как исходящий.

Выберите эту опцию если маршрут используется для вызова экстренных служб (например 112).

Не совсем понятно, по крайней мере в условиях России, зачем указывать специальный CallerID для вызова спецслужб. Но можно придумать, как использовать эту возможность в других целях. Например, в системе могут использоваться два транка, в которые надо передавать разные идентификаторы, с одного и того же екстеншена. Тут и пригодятся два разных исходящих идентификатора.

Выбор в качестве внутри-корпоративного (Intra-Company) маршрута использует внутренний CID, вместо Outbound CallerID вызывающего екстеншена.

Music On Hold

Музыка на удержании.
Вы можете выбрать категорию MoH. Например, при выборе направления на определённую страну, вместо гудков вызова (КПВ) можно использовать ассоциативную музыку, звоним в Казахстан — звучит прекрасная казахская песня, или приветствие (announcements) на соответствующем языке.

Time Group

Временная группа
Возможно задать время или дни недели по которым данный маршрут будет доступен. Для этого создайте правило в модуле Time Groups и укажите его здесь. Маршрут не будет использоваться в промежуток времени, не попадающий в период заданный в правилах. Если оставить значение по умолчанию, то маршрут будет доступен постоянно.

Route Position

Порядок выбора маршрута.
Порядок в котором будет добавлен маршрут, относительно других маршрутов.

Читайте также:  Essb сигнал настройка блоков

Trunk Sequence for Matched Routes

Последовательность транков для совпавших маршрутов.
Задайте транки для маршрута и порядок в котором они будут использоваться.
Например, при наборе междугороднего номера вы направляете его в первую очередь по более дешевому маршруту (VoIP транк) и только если они недоступны или переполнены по более дорогим (линии ТФОП).

Optional Destination on Congestion

Выборочное назначение при переполнении
Выберите из выпадающего списка, куда будет отправлен вызов, если все транки заняты.

Dial Patterns

Правила набора

Dial Patterns that will use this Route

Шаблоны номеров, используемые на этом маршруте
Шаблон номера — это уникальный набор цифр, который определяет использование этого маршрута и направляет вызов в соответствующий транк. Если набранный номер соответствует шаблону, то последующие маршруты не рассматриваются.
Правила:

prepend prefix match pattern CallerID
Prepend

Приставка: Цифры, которые будут добавлены к номеру, если найдено совпадение. Если набранный номер совпадает с шаблоном, указанным в Prefix и Pattern, то эти цифры будут добавлены к номеру, прежде чем он будет отправлен в транк.

Prefix

Префикс используется для исходящей маршрутизации и удаляется из набираемого номера. Если одна или более из цифр в начале набранного номера совпадают с цифрами указанными в поле префикса, то они будут удалены. Префиксы использовались в традиционных АТС для выбора исходящих линий. Традиционно в России это была цифра ‘9’. Уровень маршрутизации в FreePBX позволяет прекрасно обходится без префиксов. Однако иногда бывает полезно назначить выбор определенных транков по коду.

match pattern

Совпадение шаблона: Набранный номер будет сравниваться с комбинацией Prefix + match pattern. Если найдено совпадение, совпавшая с шаблоном часть номера будет передана в транк.

Caller ID

CID Если указан Caller ID, набранный номер будет сравниваться с комбинацией префикс + шаблон, только если внутренний Caller ID екстеншена совпадает с указанным. Outbound CallerID не проверяется. В поле CallerID могут быть использованы шаблоны по тем же правилам, что и для match pattern. Например, шаблон 1ХХ, разрешит вызовы для ектеншенов 100-199.

Примеры шаблонов исходящих вызовов

Prepend Prefix Pattern CallerID Как набрано Как отправлено в транк Комментарий
9 8[09]XXXXXXXXX 989219981138 89219981138 Только мобильные Def коды 9XX и 0XX
0001 9 8[90]XXXXXXXXX 989219981138 000189219981138 То же + в начало номера добавляется 0001
810X. 2[23]XX 81015104124400 81015104124400 международные вызовы только для внутренних номеров диапазоне 2200-2399
NXXXXXX 3216111 3216111 7-ми значные городские вызовы начинающиеся с цифр от 2 до 9

Advanced Settings

Call Recording

Запись разговора. Вкл/Откл или переопределяет запись вызова через маршрут.

Force Yes Don’t Care No Never

Логика записи вызова

Dial Patterns Wizard

Dial Patterns Wizard

Dial Patterns Wizard

Помощник создания шаблона номера
Эта опция дает возможность легко добавить правило для исходящих наборов. Следуйте предлагаемым шагам для каждого нового правила.

Скачать локальные префиксы Это просматривает ваш локальный номер на www.localcallingguide.com (NA-only), и настраивает так, что вы можете набрать либо 7,10 или 11 цифр(5551234, 6135551234, 16135551234) как выбрано ниже для доступа к этому маршруту. Имейте ввиду, что это требует доступа в Internet и может занять некоторое время.

Сгенерировать кнопки. Вы можете выбрать 7,10,11-ти цифровые шаблоны . Если Вы не выбрали ‘Загрузить’, то добавятся общие 7,10,11-цифровые шаблоны.

Универсальный шаблон. Вы можете выбрать разрешать совершать бесплатные звонки,такие как 800,877 и т.д , а так же Справочная Система, международные вызовы. Шаблоны импорта/эскпорта
Загрузить из файла CSV
Загрузка шаблонов из файла CSV заменит текущие значения. Если файл не содержит заголовков полей, то файл должен содержать 4 колонки шаблонов в том же порядке, как они следуют в графическом интерфейсе. Также можно указать и заголовки в первой строке: ‘prepend’, ‘prefix’, ‘match pattern’ и ‘callerid’. Если распознаётся меньше, чем 4 заголовка, то значения в недостающей колонке будут пустыми.

Источник

Исходящий звонок Asterisk — базовая настройка

Настройку будем производить в /etc/asterisk/extensions.conf и /etc/asterisk/sip.conf

Сначала посмотрим информацию по приложению которое будем использовать

Переходим в консоль сервера телефонии

Выводим все приложения

Теперь из списка выбираем dial и просматриваем информацию по нему

core show applications like dial

core show applications description dial

Информация при этом соотносится с используемой версией пакета

Правим extensions.conf настроенный ранее

[phones]
exten => 100,1,NoOp(First Line)
exten => 100,2,NoOp(Second Line)
exten => 100,3,Dial(Sip/user1)
exten = > 100,4,Hangup

После указания номера 100 идет порядковый номер правила, а затем название протокола — Sip в данном случае — и через слэш имя пользователя, который задан в sip.conf

После того как сделан вызов обязательно нужно использовать Hangup

Сейчас можно звонить на extention 100 (т.е. авторизовавшись в программном телефоне или используя аппаратный телефон звонить на 100), при звонке в консоли Asterisk видно, что вызов проходит, но после окончания звонка можно увидеть такую ошибку:

«unable to reopen master file /var/log/asterisk//cdr-csv//Master:csv» :Permistion denied

Она вызвана существованием некорреткных прав и легко исправляется

chown asterisk /var/log/asterisk//cdr-csv//Master.csv

Сейчас исходящий звонок должен проходить без ошибок.

Добавляем аналогичные строки в конфигурационный файл для второго пользователя

[phones]
exten => 100,1,NoOp(First Line)
same => n,NoOp(Second Line)
same => n,Dial(Sip/user1)
same = > n,Hangup

exten => 200,1,NoOp(First Line)
same => n,NoOp(Second Line)
same => n,Dial(Sip/user2)
same = > n,Hangup

Здесь использован более совершенный синтаксис — для каждого последующего правила прописывается same, а порядковый номер заменяется на n, что действительно для всех номеров кроме первого (который всегда указывается) — это является хорошей практикой и исключает возможность неправильного выполнения программы, например, при перестановке строк.

После перезапуска диалплана пользователи могут беспрепятственно звонить друг другу.

Проигрывание звукового файла при звонке

Добавим проигрывание определенного звукового файла при звонке на одно из расширений

exten => 100,1,NoOp(First Line)
same => n,NoOp(Second Line)
same => n,Dial(Sip/user1)
same = > n,Hangup

exten => 200,1,NoOp(First Line)
same => n,NoOp(Second Line)
same =>n,Playback(tt-monkeys)
same => n,Dial(Sip/user2)
same = > n,Hangup

Теперь при звонке на 200 сначала будет проигрываться один из стандартных звуковых фрагментов, потом будет совершаться вызов на user2.

Настроим возможность звонить во внешний мир

Строк с playback из предыдущего примера здесь нет, в остальном диалплан тот же.

exten => 100,1,NoOp(call for user1)
same => n,Dial(Sip/user1)
same = > n,Hangup

exten => 200,1,NoOp(call for user2)
same => n,Dial(Sip/user2)
same = > n,Hangup

exten => 8888,1,Goto(ougoing,8888,1)

[outgoing]
extent => 8888,1,Dial(SIP/outside)


Вводим новое расширение outgoing, а при звонках на 8888 вызовы будут перенаправляться пользователю outside из sip.conf — обычно это провайдер телефонии.

Теперь если user1 или user2 будут набирать 8888 телефон пользователя outside будет звонить.

Если мы хотим звонить не только на номер 8888 (а это обычно так, то используем регулярное выражение)

[phones]
exten => 100,1,NoOp(call for user1)
same => n,Dial(Sip/user1)
same = > n,Hangup

exten => 200,1,NoOp(call for user2)
same => n,Dial(Sip/user2)
same = > n,Hangup

exten => _XXXX,1,Goto(ougoing,8888,1)

[outgoing]
extent => 8888,1,Dial(SIP/outside)

Все регулярные выражения начинаются с нижнего подчеркивания, ХХХХ означает, что провайдеру вызов будет переадресован случае если номер состоит из 4-х цифр, для номера произвольной длины можно использовать _0X.

Если после настройки звука нет или он есть частично нужно выяснить за NAT-ом ли клиент и сервер и скорректировать конфигурацию.

Источник

Adblock
detector