четверг, 20 января 2011 г.

800 от Укретелекома по SIP ОГО от укртелекома на Asterisk

Номера и пароли, номера очередей изменены :)

Общая логика
1) куплено несколько номеров 380925555555 380925555556 380925555557 и т.д.
2) Приходящий вызов на 800 номер переадресовывается на номер 380925555555
3) этот номер может принимать два одновременных вызова, третий вам отправляться не будет
4) Поэтому сделан счетчик первый вызов проходит, второй отвечает занято, тогда отрабатывает переадресация по занятости на укртелекоме и звонок приходит на 380925555556
5) получается линейное масштабирование, вариант с переадресацией на несколько номеров сразу работал на первый взгляд, а вот на второй уже не работал (обрывы через несколько десятков секунд со стороны укретелекома, причина нарушение уникального номера вызова со стороны asterisk)

кусок sip.conf


register=>380925555555:пароль@sip.ukrtel.net/380925555555

формат номера телефона 380925555555

[utel]

type=friend

username= 380925555555

secret = пароль

host = 195.5.0.116

fromdomain = 195.5.0.116

qualify = yes (для мониторинга)

directmedia = no

dtmfmode=rfc2833(донабор номера)

context=utel_context

insecure=port,invite

disallow =all

allow= alaw (разрешить только g711alaw)

nat = no

кусок extension.conf
[utel_context]

exten=>380925555555,1,set(GROUP()=mygroup01)

exten=>380925555555,2,gotoif($["${GROUP_COUNT()}>1]?20:10)

exten=>380925555555,10,Set(CALLERID(num)=компания)
чтобы оператор видел с какой линии (какой проект) поступил вызов, вполне можно обойтись без єтой строчки в общем случае в моем есть особенности IP телефонов Planet VIP254
exten=>380925555555,11,Background(имя файла) 
проигрываем приветствие (так как у меня описан русский язык то я просто положил в папку /var/lib/asterisk/sounds/ru/ и назначил с помощью chown такие же как права как у соседних файлов. Посмотреть права удобно например ls-l
exten=>380925555555,12,Queue(1001,) 
Отправляю в очередь, в которую должны попадать этивы вызовы. В этой очереди у меня операторы, которые обслуживают эти вызовы exten=>380925555555,20,Hangup(17) цифра 17 важно это код isdn на самом деле то есть занято кусок файла queues.conf

 

[1001]

;название проекта

strategy = ringall

member => SIP/1101

member => SIP/1102

member => SIP/1102


6 комментариев:

Светописец комментирует...

Если для оформления фрагментов конфигов использовать тэги "pre", то читать будет приятнее. ;-)

Андрей комментирует...

У меня трабла, тоже подключил ОГО телефонию к астериску, но после первого звонка, когда пытаешься позвонить. Система отвечает, что все линии заняты, хотя трубки положены. Как побороть ?

Евгений Мережко комментирует...

Попытаюсь угадать, речь идет о исходящем вызове. Не совсем понял - первый исходящий вызов проходит успешно? А потом вызов не обрывается, хотя положили трубку?
Для диагностики можно использовать, например sip show registry в консоли asterisk. Очень мощным средством диагностики является whireshark. Сценарий прост - пишем dump хоть тем же linux, на котором стоит asterisk. Потом с помощью любого удобного метода (например winscp) копируем файл на ПК с windows и открываем в wireshark. Дальше - здесь http://wiki.wireshark.org/VoIP_calls.
Но я бы проверил сначала входящие.
По большому счету этот sip ничем не отличается от любого другого sip. Мои фокусы были связаны с особо извращенной попыткой экономить на 800 номерах.

p.s. Все эти эксперименты были в 2011 году. Уже работаю в другом месте, где 800 линии в значительно больших количествах и к таким ухищрениям прибегать не приходится. Возможно были какие то изменения у Укртелекома.

Андрей комментирует...

Со входящими тоже самое.Сделал входящий звонок, всё отлично слышится. После этого сделать входящий звонок или исходящий невозможно.Линии заняты

Андрей комментирует...

sip show registry
показывает, что всё хорошо

Евгений Мережко комментирует...

Давайте попробуем записать два dumpа:
1) в котором будет первый звонок нормальный и второй который не проходит.
2) второй со стороны абонентского устройства оба звонка и посмотрим что отличается

И второй можно лог того, что выводится в консоли смогу посмотреть скорее всего завтра, или сегодня возможно до 14
на zhenya97 на гуглопочте.