ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

Проблемы и их решения Asterisk как такового

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

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

Сообщение lamobot » 17 авг 2019, 18:00

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

Схема: 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


Вот если выждать таймаут - все прекрасно отрабатывается, а вот если звонящий положил трубку - всё, конец, остановка выполнения сценария.
lamobot
 
Сообщений: 24
Зарегистрирован: 23 ноя 2016, 08:22
Откуда: Новосибсити

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

Сообщение Zavr2008 » 17 авг 2019, 23:43

Код: выделить все
exten => h,1,Goto(send_mail,s,1)
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2158
Зарегистрирован: 27 янв 2011, 01:35

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

Сообщение ded » 18 авг 2019, 01:12

Zavr2008 писал(а):exten => h,1,Goto(send_mail,s,1)

а строчку
exten => 200,n,Hangup
убрать.
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение lamobot » 18 авг 2019, 13:55

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

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

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

Сообщение lamobot » 18 авг 2019, 23:19

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

Код: выделить все
[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()


[Показать] Спойлер: Консоль
Код: выделить все
== 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:
lamobot
 
Сообщений: 24
Зарегистрирован: 23 ноя 2016, 08:22
Откуда: Новосибсити

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

Сообщение zzuz » 19 авг 2019, 11:03

exten => h,1,NoOp(Разговор завершен)
exten => h,n,Goto(check-dial-status,s,1)
Линия24 - Системы Массового Телефонного Обслуживания
Аватар пользователя
zzuz
 
Сообщений: 1658
Зарегистрирован: 21 сен 2010, 13:33


Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH