Jump to content

Recommended Posts

Posted

Call - файл:

Channel: Local/s@test/n                                                                                                                     
Set: abon=777                                                                                                                        
MaxRetries: 0                                                                                                                               
RetryTime: 60                                                                                                                               
WaitTime: 60                                                                                                                                
Context: test                                                                                                                               
Extension: s                                                                                                                                
Priority: 2 

 

Контекст обзвона:

[test]                                                                                                                                      
exten => s,1,Dial(SIP/${abon})                                                                                                              
exten => s,2,Wait(1)                                                                                                                        
exten => s,n,Set(CHANNEL(language)=ru)
; Тут будет бла-бла и сумма задолженности                                                                                                      
exten => s,n,SayNumber(2146,m)                                                                                                              
exten => s,n,Hangup()
; Тут будет обновление БД средствами диал-плана или через вызов AGI                                                                                                                       
exten => h,1,Noop(Длительность разговора ${CDR(billsec)} секунд. Статус звонка ${CDR(disposition)}) 

 

Проблема в том, что exten h выполняется два раза (похоже для local и для dial отдельно):

   -- SIP/3322222-0002ac0f answered Local/s@test-a982;2
   -- Executing [s@test:2] Wait("Local/s@test-a982;1", "1") in new stack
   -- Executing [s@test:3] Set("Local/s@test-a982;1", "CHANNEL(language)=ru") in new stack
   -- Executing [s@test:4] SayNumber("Local/s@test-a982;1", "2146,m") in new stack
   -- <Local/s@test-a982;1> Playing 'digits/2f.alaw' (language 'ru')
   -- <Local/s@test-a982;1> Playing 'digits/thousands-i.alaw' (language 'ru')
   -- <Local/s@test-a982;1> Playing 'digits/100.alaw' (language 'ru')
   -- <Local/s@test-a982;1> Playing 'digits/40.alaw' (language 'ru')
   -- <Local/s@test-a982;1> Playing 'digits/6.alaw' (language 'ru')
   -- Executing [s@test:5] Hangup("Local/s@test-a982;1", "") in new stack
 == Spawn extension (test, s, 5) exited non-zero on 'Local/s@test-a982;1'
   -- Executing [h@test:1] NoOp("Local/s@test-a982;1", "Длительность разговора 4 секунд. Статус звонка ANSWERED") in new stack
   -- Executing [h@test:1] NoOp("Local/s@test-a982;2", "Длительность разговора 4 секунд. Статус звонка ANSWERED") in new stack
[sep 19 17:36:52] NOTICE[9500]: pbx_spool.c:349 attempt_thread: Call completed to Local/s@test/n
 == Spawn extension (test, s, 1) exited non-zero on 'Local/s@test-a982;2'

 

мож я чего не знаю и выполнение h exten можно подавить для одного из каналов? Если отказаться от использования local и указывать в call-файле целевой канал, то если не возьмут трубку h exten вобще не выполнится.

Posted

в exten h хочу проанализировать длительность и статус звонка и сделать соответствующую запись в БД. на др форуме уже посоветовали использовать разные контексты для local и для проигрывания файлов, попробую.

Posted

у вас же эти call-файлы генерирует что-то? что мешает завести табличку обзвона, в которой будет статус звонка?

тем более, у вас уже всё есть в CDR. Зачем еще что-то городить?

Posted

у вас же эти call-файлы генерирует что-то? что мешает завести табличку обзвона, в которой будет статус звонка?

тем более, у вас уже всё есть в CDR. Зачем еще что-то городить?

 

ну таблицу со статусами я и планировал. просто мне кажется ее проще обновлять "на месте" прям из контекста, чем потом выуживать данные из CDR, где этот звонок еще выделить надо.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.