Context на ael портит записи CDR
При вызове делаю так:
| Код: |
| context out_kiev { ;//все киев _044XXXXXXX=>{ &outbound-callerid(); &dialout-trunk (SIP,044 ******1 ,${EXTEN},${CON}); &dialout-trunk (SIP,044 ******2 ,${EXTEN},${CON}); h=>{ Noop( ---- ============== context ${EXTEN}"@"${CON} =============== ----- ); &hangupcall(); }; }; |
Сам контекст
| Код: |
| macro dialout-trunk(protocol,d_trunk,d_number,CNXT ){ Dial(${protocol}/${d_trunk}/${d_number},${TIME_TRUNK_DIAL},S(${MAX_TDIAL})${DEFAULT_TRUNK_DIAL}); Noop(-----=========== Macro: dialout-trunk DIALSTATUS: ${DIALSTATUS} HANGUPCAUSE: ${HANGUPCAUSE} ============== ----- ); Set(M_CL_BUSY(${UNIQUEID})=); switch ("${DIALSTATUS}") { case "BUSY": NoOp(dialout-local: "Dialstatus is ${DIALSTATUS}"); Busy(5); &hangupcall(); break; case "CHANUNAVAIL": return; break; case "CONGESTION": return; break; case "INVALIDNMBR": Progress; Playback(invalid); Busy(20); &hangupcall(); break; default: Progress; Playtones(busy); Busy(20); &hangupcall(); }; &hangupcall(); } |
Все работает, но в поле DST CRD записей получаю "~~s~~"
Если же сделать по старинке
| Код: |
| context out_kiev { ;//все киев _044XXXXXXX=>{ &outbound-callerid(); Macro(dialout-trunk,SIP,044******1,${EXTEN},${CON}); h=>{ Noop( ---- ============== context ${EXTEN}"@"${CON} =============== ----- ); &hangupcall(); }; }; И переписать макрос как обычно через Exten [macro-dialout-trunk] exten => s,1,Set(protocol=${ARG1}); same => n,Set(d_trunk=${ARG2}); same => n,Set(d_number=${ARG3}); same => n,Set(__CNXT=${ARG4}); same => n,Dial(${protocol}/${d_trunk}/${d_number},${TIME_TRUNK_DIAL},S(${MAX_TDIAL})${DEFAULT_TRUNK_DIAL}); same => n,Set(M_CL_BUSY(${UNIQUEID})=); same => n,Goto(s-${DIALSTATUS},1); |
И т .д
Тов все нормально, поле CDR заполняется верно. Догадываюсь что дело в исправленном в 1,6 версии Gousub, ссылки на это нашел на буржуйских форумах. Вот как исправить не могу найти.
Прошу помочь.