VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
lamobot
Сообщения: 24
Зарегистрирован: 23 ноя 2016, 07:22
Откуда: Новосибсити

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

Сообщение lamobot »

Собственно задачка простая, чел звонит, не дождался ответа - повесил трубку, а манагеру прилетело письмо на почту. Отправку проверил - работает.

Схема: GSM-шлюз, 2е симки, каждая звонит на свой номер.

Код: Выделить всё

[holidays]
exten => 201,1,Answer()
exten => 201,n,Macro(recording,${CALLERID(num)},${EXTEN})
exten => 201,n,Dial(SIP/200&SIP/201&SIP/sipnet.ru/номер,1,tTm(manual))
exten => 201,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?:7)
exten => 201,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?:7)
exten => 201,n,Hangup
exten => XXX,n,Goto(send_mail,s,1)
exten => 200,1,Answer()
exten => 200,n,Playback(/music_for_ats/Welcome)
exten => 200,n,Playback(/music_for_ats/Razgovor_zapisan)
exten => 200,n,Macro(recording,${CALLERID(num)},${EXTEN})
exten => 200,n,Dial(SIP/200&SIP/201&SIP/sipnet.ru/номер,60,tTm(manual))
exten => 200,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?:7)
exten => 200,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?:7)
exten => 200,n,Hangup

[send_mail]
exten => s,1,System(rm /records/body.txt)
exten => s,n,System(echo "${CALLERID(num)}" "${DIALSTATUS}" "${VMSTATUS}" >> /records/body.txt)
exten => s,n,System(/records/send_mail.sh "${CALLERID(num)}" "${STRFTIME(${EPOCH},,%Y-%m-%d/%H:%M)}" "${DIALSTATUS}" "${VMSTATUS}")
exten => s,n,Hangup
Вот если выждать таймаут - все прекрасно отрабатывается, а вот если звонящий положил трубку - всё, конец, остановка выполнения сценария.
Аватара пользователя
Zavr2008
Сообщения: 2211
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

Re: Продолжить выполнение диалплана когда звонящий повесит т

Сообщение Zavr2008 »

Код: Выделить всё

exten => h,1,Goto(send_mail,s,1)
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1,Подключение к ИС "Антифрод" E1 PRI/SS#7 УВР Телестор, Грифин и др..
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Продолжить выполнение диалплана когда звонящий повесит т

Сообщение ded »

Zavr2008 писал(а):exten => h,1,Goto(send_mail,s,1)
а строчку
exten => 200,n,Hangup
убрать.
lamobot
Сообщения: 24
Зарегистрирован: 23 ноя 2016, 07:22
Откуда: Новосибсити

Re: Продолжить выполнение диалплана когда звонящий повесит т

Сообщение lamobot »

Благодарю, Уважаемые работает.

П.С. Довольно странно, ранее я пытался использовать Н, но безрезультатно.
lamobot
Сообщения: 24
Зарегистрирован: 23 ноя 2016, 07:22
Откуда: Новосибсити

Re: Продолжить выполнение диалплана когда звонящий повесит т

Сообщение lamobot »

И снова непонятка, немного переработал для упрощения и снова не шлет письма.

Код: Выделить всё

[from]
exten => 201,1,Answer()
exten => 201,n,Macro(recording,${CALLERID(num)},${EXTEN})
exten => 201,n,Dial(SIP/201,60,tTm(manual))
exten => h,n,NoOp(Разговор завершен)
exten => h,n,Goto(check-dial-status,s,1)

[check-dial-status]
exten => s,1,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?true,false)
        same => n(true),Goto(send_mail,s,1)
        same => n(false),Hangup()
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: Консоль

Код: Выделить всё

== Using SIP RTP CoS mark 5
    -- Executing [201@from-skp:1] Answer("SIP/9517531-0000009f", "") in new stack
    -- Executing [201@from-skp:2] Macro("SIP/9517531-0000009f", "recording,79009000000,201") in new stack
    -- Executing [s@macro-recording:1] Set("SIP/9517531-0000009f", "DIR_RECORDS=/home/calls/2019/2019-08/2019-08-19/") in new stack
    -- Executing [s@macro-recording:2] GotoIf("SIP/9517531-0000009f", "1?mp3") in new stack
    -- Goto (macro-recording,s,4)
    -- Executing [s@macro-recording:4] Set("SIP/9517531-0000009f", "fname=1566155289.159-2019-08-19-02_08-79009000000-201") in new stack
    -- Executing [s@macro-recording:5] Set("SIP/9517531-0000009f", "monopt=nice -n 19 /usr/bin/lame -b 32  --silent "/home/calls/2019/2019-08/2019-08-19/1566155289.159-2019-08-19-02_08-79009000000-201.wav"  "/home/calls/2019/2019-08/2019-08-19/1566155289.159-2019-08-19-02_08-79009000000-201.mp3" && rm -f "/home/calls/2019/2019-08/2019-08-19/1566155289.159-2019-08-19-02_08-79009000000-201.wav" && chmod o+r "/home/calls/2019/2019-08/2019-08-19/1566155289.159-2019-08-19-02_08-79009000000-201.mp3"") in new stack
    -- Executing [s@macro-recording:6] Set("SIP/9517531-0000009f", "CDR(filename)=1566155289.159-2019-08-19-02_08-79009000000-201.mp3") in new stack
    -- Executing [s@macro-recording:7] Set("SIP/9517531-0000009f", "CDR(realdst)=201") in new stack
    -- Executing [s@macro-recording:8] Set("SIP/9517531-0000009f", "CDR(remoteip)=192.168.0.30") in new stack
    -- Executing [s@macro-recording:9] MixMonitor("SIP/9517531-0000009f", "/home/calls/2019/2019-08/2019-08-19/1566155289.159-2019-08-19-02_08-79009000000-201.wav,b,nice -n 19 /usr/bin/lame -b 32  --silent "/home/calls/2019/2019-08/2019-08-19/1566155289.159-2019-08-19-02_08-79009000000-201.wav"  "/home/calls/2019/2019-08/2019-08-19/1566155289.159-2019-08-19-02_08-79009000000-201.mp3" && rm -f "/home/calls/2019/2019-08/2019-08-19/1566155289.159-2019-08-19-02_08-79009000000-201.wav" && chmod o+r "/home/calls/2019/2019-08/2019-08-19/1566155289.159-2019-08-19-02_08-79009000000-201.mp3"") in new stack
    -- Executing [s@macro-recording:10] Goto("SIP/9517531-0000009f", "no") in new stack
    -- Goto (macro-recording,s,17)
    -- Executing [s@macro-recording:17] Verbose("SIP/9517531-0000009f", "Exit record") in new stack
Exit record
    -- Executing [201@from-skp:3] Dial("SIP/9517531-0000009f", "SIP/201,60,tTm(manual)") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/201
    -- Started music on hold, class 'manual', on channel 'SIP/9517531-0000009f'
  == Begin MixMonitor Recording SIP/9517531-0000009f
    -- SIP/201-000000a0 is ringing
    -- Stopped music on hold on SIP/9517531-0000009f
  == Spawn extension (from-skp, 201, 3) exited non-zero on 'SIP/9517531-0000009f'
  == Executing [nice -n 19 /usr/bin/lame -b 32  --silent "/home/calls/2019/2019-08/2019-08-19/1566155289.159-2019-08-19-02_08-79009000000-201.wav"  "/home/calls/2019/2019-08/2019-08-19/1566155289.159-2019-08-19-02_08-79009000000-201.mp3" && rm -f "/home/calls/2019/2019-08/2019-08-19/1566155289.159-2019-08-19-02_08-79009000000-201.wav" && chmod o+r "/home/calls/2019/2019-08/2019-08-19/1566155289.159-2019-08-19-02_08-79009000000-201.mp3"]
  == End MixMonitor Recording SIP/9517531-0000009f
Изменять диалплан начал потому, что в предыдущем решении слались на мыло все номера, без разбора отвечен или нет.((
Что опять я не так делаю? :cry:
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Продолжить выполнение диалплана когда звонящий повесит т

Сообщение zzuz »

exten => h,1,NoOp(Разговор завершен)
exten => h,n,Goto(check-dial-status,s,1)
Линия24 - Системы Массового Телефонного Обслуживания
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH