Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / sip - callback

sip - callback

Думаю простенькая задачка... подскажите...
<1 2 3>
Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: sip - callback

Mrakus:

Подскажите, можно ли это настроить в asterisk?
См. google: Asterisk call out
Сгенерить из web формы файлик и скинуть куда надо - это первый класс вторая четверть :-)
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2008-10-01 19:53

Сообщений: 14

Re: sip - callback

cron333:

Вы по ссылкам ходили ...?
Да ходил... нарыл вот этот пример callback

Но не совсем понятно. В примере, насколько я понял, разобран случай, как система перезванивает на указанный номер:

exten => 004144555666,4,system(echo 'Channel: SIP/${CALLERIDNUM}@provider' >> /var/spool/asterisk/skelett.tmp.call)

А где звонок на номер после "*"? Т.е. в примерез человек звонит на номер, ему система перезванивает, он вводит звезду и номер2... и где туда звонок и как соеденить номер1 и номер2?...

Подскажите плиз... может пример не полный.
2008-10-03 02:02

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: sip - callback

в приведенной вами ссылке вполне работоспособный пример. однако работает он только когда все вместе, отдельной функции callback нету.



это call файл, он формируется и затем копируется в специальный каталог астериска, где он его и подбирает. этим файлом инициируется соединение между двумя экстеншенами
/var/spool/asterisk/skelett.call
Context: callback-dialtone-auth ;контекст первого канала звонка
Extension: s ;первого канала звонка
SetVar: CALLERIDNUM=<your main number>
MaxRetries: 2
RetryTime: 1

in the incomming call context in extensions.conf

exten => 004144555666,1,NoOp(provider callback to ${calleridnum})
exten => 004144555666,2,Wait(1)
exten => 004144555666,3,system(cp /var/spool/asterisk/skelett.call /var/spool/asterisk/skelett.tmp.call)
;этой командой добавлятся второй канал звонка в call файл
exten => 004144555666,4,system(echo 'Channel: SIP/${CALLERIDNUM}@provider' >> /var/spool/asterisk/skelett.tmp.call)
exten => 004144555666,5,system(cp /var/spool/asterisk/skelett.tmp.call /var/spool/asterisk/outgoing)
exten => 004144555666,6,HangUp

;сюда попадают звонки после обработки call файла
somewhere in extensions.conf:
[callback-dialtone-auth]
exten => s,1,answer()
exten => s,2,background(welcome)
exten => s,3,authenticate(5678)
exten => s,4,DISA(no-password,home)
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2008-10-03 07:40

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: sip - callback

А я вот совсем примитивный callback сделал (но работает)
[callback]
exten => s,1,Verbose(Trying callback from ${CALLERID(num)})
exten => s,n,Verbose(${CALLERID(num):1})
exten => s,n,GotoIf($[ "${CALLERID(num)}" = "8962XXXXXXX" ]?callback)
exten => s,n,Return
exten => s,n(callback),System(asterisk -rx \'originate SIP/7${CALLERID(num):1}@sipnet extension menu@callback\')
exten => s,n,Hangup
; menu
exten => menu,1,Answer
exten => menu,n,Wait(1)
exten => menu,n(read-num),Read(number|number)
exten => menu,n,Dial(SIP/${number}@sipnet,60,gT)
exten => menu,n,Goto(read-num)

Надо в главное меню добавить Gosub(callback,s,1) и тогда определенные номера вместо меню будут попадать на callback с возможностью набора многих номеров без разъединения.

P.S. Только вот с dtmf у sipnet какие-то проблемы начались затяжные...
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2008-10-03 09:34

Сообщений: 1573

Re: sip - callback

Mrakus:

cron333:

Вы по ссылкам ходили ...?
Да ходил...
Вам нужно понять структуру call-файла. Сложного ничего нет. Здесь все подробно расписано и есть примеры.
Готовый call-файл нужно переместить(не скопировать) в каталог - /var/spool/asterisk/outgoing. И все, ваш вызов - состоиться.

Пример:

echo 'Channel: SIP/79057777777@sipnet
MaxRetries: 2
RetryTime: 60
WaitTime: 30
Context: callback
Extension: 79055555555
Priority: 1' > /tmp/call-file

mv /tmp/call-file /var/spool/asterisk/outgoing

******************************

[callback]
exten => _X.,1,Dial(SIP/${EXTEN}@sipnet,60)

Здесь вначале будет вызван номер - 79057777777, а потом, после поднятия трубки, система будет дозваниваться до - 79055555555.
Будет произведено 2 попытки(MaxRetries) набора номера - 79057777777 и т.д.
Все ...
2008-10-03 12:06

Сообщений: 14

Re: sip - callback

cron333:

Здесь вначале будет вызван номер - 79057777777, а потом, после поднятия трубки, система будет дозваниваться до - 79055555555.
Будет произведено 2 попытки(MaxRetries) набора номера - 79057777777 и т.д.
Все ...
Спасибо. Вроде настроил...
Но вот интересная ситуация. Заказываю вызов, как вы написали.
Мне система перезванивает, жду пока перезвонит второму абоненту.... тишина в трубке, время идет, так и не дожидаясь кладу трубку. Иду на сайт sip провайдера.... он помечает мои два звонка как разные соединения. Так же в логах и первый дозвонился и второй, но почему они не соединились? Канал слабоват или другая причина?

Вот лог:
-- Attempting call on SIP/7XXXXXXXXXX@sip.prov.net for 7YYYYYYYYYY@callback:1 (Retry 1)
-- Executing Dial("SIP/sip.prov.net-081ac6a8", "SIP/7YYYYYYYYYY@sip.prov.net|60") in new stack
-- Called 7YYYYYYYYYY@sip.prov.net
-- SIP/sip.prov.net-081c8cb0 is making progress passing it to SIP/sip.prov.net-081ac6a8
-- SIP/sip.prov.net-081c8cb0 answered SIP/sip.prov.net-081ac6a8
-- Attempting native bridge of SIP/sip.prov.net-081ac6a8 and SIP/sip.prov.net-081c8cb0

== Spawn extension (callback, 7YYYYYYYYYY, 1) exited non-zero on 'SIP/sip.prov.net-081ac6a8'
Oct 3 16:44:27 NOTICE[20936]: pbx_spool.c:279 attempt_thread: Call completed to SIP/7XXXXXXXXXX@sip.prov.net
2008-10-03 15:55

Сообщений: 1573

Re: sip - callback

Да вспомнил, есть такое. Помогает это:

[callback]
exten => _X.,1,Playback(beep)
exten => _X.,n,Dial(SIP/${EXTEN}@sipnet,60)
2008-10-03 16:16

Сообщений: 14

Re: sip - callback

cron333:

Да вспомнил, есть такое. Помогает это:

[callback]
exten => _X.,1,Playback(beep)
exten => _X.,n,Dial(SIP/${EXTEN}@sipnet,60)
Помоему стало еще хуже... звонок рвется как звучит "бип" ;)

Oct 3 17:08:40 NOTICE[21773]: pbx_spool.c:279 attempt_thread: Call completed to SIP/7XXXXXXXXXX@sip.prov.net
-- Attempting call on SIP/7XXXXXXXXXX@sip.prov.net for 7YYYYYYYYYY@callback:1 (Retry 1)
-- Executing Playback("SIP/sip.prov.net-081a9ab0", "beep") in new stack
-- Playing 'beep' (language 'en')
== Auto fallthrough, channel 'SIP/sip.prov.net-081a9ab0' status is 'UNKNOWN'
Oct 3 17:09:21 NOTICE[21804]: pbx_spool.c:279 attempt_thread: Call completed to SIP/7XXXXXXXXXX@sip.prov.net
2008-10-03 16:38

Сообщений: 1573

Re: sip - callback

Случаем, после вставки новой строки(Playback), во второй не забыли сменить 1 на - n (или 2). Наверняка так и есть.
Все должно работать ...
2008-10-03 16:43

Сообщений: 14

Re: sip - callback

cron333:

Случаем, после вставки новой строки(Playback), во второй не забыли сменить 1 на - n (или 2). Наверняка так и есть.
Все должно работать ...
Да точно.... чайник я... что сказать :)

Спасибо заработало!

Вот еще маленький вопросик.... реально в asterisk заменять внеший IP адрес? Я знаю есть настройка в sip.conf "externip" но имеет ли смысл ее использовать? Поскольку udp пакетах скорее всего все равно сохраняется внеший адрес сервера, с которого шлется пакет? А если sip-провайдер следит за внешними ip то все это бесполезно? ;)
2008-10-03 18:09

<1 2 3>
Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru