В предыдущем посте я писал как настроить связь между внутренними абонентами и мы для этих целей в диалплане использовали команду Dial следующим образом:
exten => 100,1,Dial(SIP/100)
сегодня я покажу как с помощью этой команды заставить звонить сразу несколько телефонов или сначала на один, и если он не берет трубку, то уходил другому абоненту.
[sip_dial]
exten => 101,1,Dial(SIP/101&SIP/102)
При входящем звонке зазвенят телефоны с номерами 101 и 102. Звонок примет тот, кто раньше поднимет рубку. Если второй номер поднимет трубку после, то он НЕ будет слышать разговор абонента 101.
[sip_dial]
exten => 101,1,Dial(SIP/101,10)
exten => 101,2,Dial(SIP/102,10)
При входящем звонке зазвенит телефон у абонента 101. Если он в течении 10 секунд не возьмет трубку, то звонок уйдет на абонента 102.
В этом блоге я буду публиковать все то, что я нашел интересное в сети, а так же свои небольшие заметки и не обязательно это будет программирование)))
6 марта 2012 г.
2 марта 2012 г.
Asterisk в Ubuntu - внутренняя связь
В предыдущем посте я писал как установить сервер VoIP телефонии на Ubuntu/ В этой статье я расскажу как настроить внутренние номера и звонки между ними.
Нам понадобится:
Установленный сервер Asterisk
Программа X-Lite (программный телефон для VoIP телефонии) - 2 шт.
Запускаем mc с правами администратора:
sudo mc
Если mc у вас не установлен, то установите его командой
sudo apt-get install mc
Asterisk устанавливается по умолчанию в папку /etc/asterisk/. Переходим в эту папку и на всякий случай скопируем файлы sip.conf и extensions.conf куда-нибудь, чтобы можно было откатиться в случаи чего.
Открываем для редактирования файл sip.conf выбрав его и нажав F4.
Найдем вначале файла строчку
;allowguest=no
и снимем с нее комментарий. Это нужно чтобы запретить гостевое подключение к серверу. Если этого не сделать можно круто попасть на $$$, особенно если ваш сервер смотрит во внешний мир.
теперь переходим в самый конец файла и дописываем:
[100]
type=friend
secret=pass100
nat=yes
host=dynamic
username=User100
dtmfmode=rfc2833
disallow=all
allow=ulaw
context=sip_dial
callerid=100
[101]
type=friend
secret=pass101
nat=yes
host=dynamic
username=User101
dtmfmode=rfc2833
disallow=all
allow=ulaw
context=sip_dial
callerid=101
Все. Сохраняемся и закрываем файл.
Переходим в консоль asterisk
sudo asterisk -r
и выполняем там команду
show sip users
Если все сделали правильно, то вы должны увидеть таблицу с нашими двумя абонентами.
таким образом мы создали абонентов с номерами 100 и 101
Данные параметры означают следующее:
[100] - имя клиента. Наличие скобок обязательно
type=friend - описывает тип клиента, в нашем случае friend. Вообще существует три типа user – это когда идентификация клиента осуществляется по полю From SIP заголовка, который исходит от клиента. peer – идентификация происходит по адресу хоста с которого осуществляется регистрация. И тот тип, что мы применили friend – это смесь peer и user, идентифкация происходит любым методом(либо адрес хоста, либо юзернейм).
secret – это пароль пользователя.
nat=yes – обозначает, что клиент может находится за натом и для открытия медиаканала при звонке этого пользователя требуется трансляция заголовков. Если будут клиенты не только из локальной сети, то лучше у всех ставить yes
host=dynamic – привязка к адресу хоста клиента отсутствует. Если необходимо чтобы этот клиент подключался только с определенного IP то указываем разрешенный IP
username=User100 – имя пользователя. Этот логин потом используется в настройках сип клиента.
dtmfmode=rfc2833 – метод передачи dtmf – тонов набора номера. Существует еще метод info, должен совпадать с настройками в SIP клиенте.
disallow=all – запрещаем все кодеки
allow=ulaw – разрешаем кодек ulaw, кодек должен быть такой, который поддерживается клиентом. Возможно указать несколько кодеков через запятую.
context=sip-dial – контекст описывает в какой секции диалплана будут обрабатываться звонки клиента
callerid=100 – Ваш номер, который будет высвечиваться у абонентов при исходящем звонке
Клиентов завели, теперь необходимо научить сервер звонить. Для этого открываем для редактирования файл extensions.conf и в конце файла дописываем:
[sip_dial]
exten => 100,1,Dial(SIP/100)
exten => 101,1,Dial(SIP/101)
Не забываем при редактировании оставлять пустую строку в конце файла. Из-за отсутствия символа перевода строки могут появиться ошибки.
Теперь устанавливаем на компьютеры программные телефоны и настраиваем их. Выбираем в меню softphone->Account settings и заполняем:
Account name: 100
User ID: 100
Domain: ip_сервера_asterisk
password: User100
Register with domain and recive calls: галочка
Proxy: галочка
Address: ip_сервера_asterisk
Остальные значения оставляем по умолчанию. На этом настройка закончена и наши абоненты могут звонить друг другу.
Нам понадобится:
Установленный сервер Asterisk
Программа X-Lite (программный телефон для VoIP телефонии) - 2 шт.
Запускаем mc с правами администратора:
sudo mc
Если mc у вас не установлен, то установите его командой
sudo apt-get install mc
Asterisk устанавливается по умолчанию в папку /etc/asterisk/. Переходим в эту папку и на всякий случай скопируем файлы sip.conf и extensions.conf куда-нибудь, чтобы можно было откатиться в случаи чего.
Открываем для редактирования файл sip.conf выбрав его и нажав F4.
Найдем вначале файла строчку
;allowguest=no
и снимем с нее комментарий. Это нужно чтобы запретить гостевое подключение к серверу. Если этого не сделать можно круто попасть на $$$, особенно если ваш сервер смотрит во внешний мир.
теперь переходим в самый конец файла и дописываем:
[100]
type=friend
secret=pass100
nat=yes
host=dynamic
username=User100
dtmfmode=rfc2833
disallow=all
allow=ulaw
context=sip_dial
callerid=100
[101]
type=friend
secret=pass101
nat=yes
host=dynamic
username=User101
dtmfmode=rfc2833
disallow=all
allow=ulaw
context=sip_dial
callerid=101
Все. Сохраняемся и закрываем файл.
Переходим в консоль asterisk
sudo asterisk -r
и выполняем там команду
show sip users
Если все сделали правильно, то вы должны увидеть таблицу с нашими двумя абонентами.
таким образом мы создали абонентов с номерами 100 и 101
Данные параметры означают следующее:
[100] - имя клиента. Наличие скобок обязательно
type=friend - описывает тип клиента, в нашем случае friend. Вообще существует три типа user – это когда идентификация клиента осуществляется по полю From SIP заголовка, который исходит от клиента. peer – идентификация происходит по адресу хоста с которого осуществляется регистрация. И тот тип, что мы применили friend – это смесь peer и user, идентифкация происходит любым методом(либо адрес хоста, либо юзернейм).
secret – это пароль пользователя.
nat=yes – обозначает, что клиент может находится за натом и для открытия медиаканала при звонке этого пользователя требуется трансляция заголовков. Если будут клиенты не только из локальной сети, то лучше у всех ставить yes
host=dynamic – привязка к адресу хоста клиента отсутствует. Если необходимо чтобы этот клиент подключался только с определенного IP то указываем разрешенный IP
username=User100 – имя пользователя. Этот логин потом используется в настройках сип клиента.
dtmfmode=rfc2833 – метод передачи dtmf – тонов набора номера. Существует еще метод info, должен совпадать с настройками в SIP клиенте.
disallow=all – запрещаем все кодеки
allow=ulaw – разрешаем кодек ulaw, кодек должен быть такой, который поддерживается клиентом. Возможно указать несколько кодеков через запятую.
context=sip-dial – контекст описывает в какой секции диалплана будут обрабатываться звонки клиента
callerid=100 – Ваш номер, который будет высвечиваться у абонентов при исходящем звонке
Клиентов завели, теперь необходимо научить сервер звонить. Для этого открываем для редактирования файл extensions.conf и в конце файла дописываем:
[sip_dial]
exten => 100,1,Dial(SIP/100)
exten => 101,1,Dial(SIP/101)
Не забываем при редактировании оставлять пустую строку в конце файла. Из-за отсутствия символа перевода строки могут появиться ошибки.
Теперь устанавливаем на компьютеры программные телефоны и настраиваем их. Выбираем в меню softphone->Account settings и заполняем:
Account name: 100
User ID: 100
Domain: ip_сервера_asterisk
password: User100
Register with domain and recive calls: галочка
Proxy: галочка
Address: ip_сервера_asterisk
Остальные значения оставляем по умолчанию. На этом настройка закончена и наши абоненты могут звонить друг другу.
Подписаться на:
Сообщения (Atom)