Hi, all!
Please, advice how to do.
System is freesentral on yate-3.0.0.
Incoming h323 call routed to wave file in regexroute by next string:
[notexist]
.*=wave/play//usr/share/yate/sounds/notexist.slin;autoprogress=yes
After 20 seconds(duration of wave) call hungup with Q.931 code 16.
But I want to send code 1 (Unallocated number).
For this I do next in regexroute.conf (advice from Paul in mailist for sip call)
[extra]
chan.disconnected=30
[chan.disconnected]
${id}^h323/=if ${status}^progressing=;cause_q931=1
But result is no. (from snifer I see)
...
20121128132809.692960 <wave:ALL> WaveSource '(null)' end of data (314672 played) chan=0x84b9058 [0x84a2cc0]
20121128132809.693491 <wave:ALL> WaveSource cleanup, total=314672, chan=(nil) [0x84a2cc0]
20121128132809.693842 >>> DataTranslator::detachChain(0x84a2cc0,0x84b9f80)
20121128132809.694727 >>> DataTranslator::detachChain(0x84a2cc0,0x84bfa70)
20121128132809.694981 <<< DataTranslator::detachChain
20121128132809.695775 <ALL> G729Codec::~G729Codec() [0x84bfa70]
20121128132809.696328 <<< DataTranslator::detachChain
20121128132809.696596 >>> YateH323Chan::disconnected() '(null)' [0x8494a18]
20121128132809.696862 <<< YateH323Chan::disconnected()
20121128132809.697628 <wave/5:ALL> WaveChan::~WaveChan() wave/5 [0x84b9058]
20121128132809.698430 <wave:ALL> WaveSource::~WaveSource() [0x84a2cc0] total=314672 stamp=157280
20121128132809.698702 <wave:INFO> WaveSource rate=16001 b/s
Sniffed 'chan.disconnected' time=1354109289.696843
thread=0x84480a8 'Engine Worker'
data=0x8494a18
retval='(null)'
param['id'] = 'h323/12'
param['module'] = 'h323'
param['status'] = 'progressing'
param['address'] = '192.168.154.14:51981'
param['billid'] = '1350622400-11645'
param['lastpeerid'] = 'wave/5'
param['answered'] = 'false'
Returned true 'chan.disconnected' delay=0.002531
thread=0x84480a8 'Engine Worker'
data=0x8494a18
retval='if progressing^progressing=return'
param['id'] = 'h323/12'
param['module'] = 'h323'
param['status'] = 'progressing'
param['address'] = '192.168.154.14:51981'
param['billid'] = '1350622400-11645'
param['lastpeerid'] = 'wave/5'
param['answered'] = 'false'
param['cause_q931'] = '1'
20121128132809.700297 <yrtp:ALL> YRTPSource::~YRTPSource() [0x84b7440] wrapper=0x84b7188 ts=155040
20121128132809.700380 <yrtp:ALL> YRTPConsumer::~YRTPConsumer() [0x84b9f80] wrapper=0x84b7188 ts=157120
20121128132809.700406 <yrtp:ALL> YRTPWrapper::~YRTPWrapper() bidir 'audio' [0x84b7188]
20121128132809.700431 <ALL> Cleaning up RTP 0x84b7260 [0x84b7188]
20121128132809.700655 <h323/12:ALL> YateH323Chan::~YateH323Chan() progressing h323/12 [0x8494a18]
Sniffed 'chan.hangup' time=1354109289.702249
thread=0x84480a8 'Engine Worker'
data=(nil)
retval='(null)'
param['id'] = 'h323/12'
param['module'] = 'h323'
param['status'] = 'progressing'
param['address'] = '192.168.154.14:51981'
param['billid'] = '1350622400-11645'
param['lastpeerid'] = 'wave/5'
param['answered'] = 'false'
param['reason'] = 'EndedByLocalUser'
20121128132809.707079 <h323/12:ALL> YateH323Connection::CleanUpOnCallEnd() [0x8446390]
Returned false 'chan.hangup' delay=0.005704
thread=0x84480a8 'Engine Worker'
data=(nil)
retval='(null)'
param['id'] = 'h323/12'
param['module'] = 'h323'
param['status'] = 'progressing'
param['address'] = '192.168.154.14:51981'
param['billid'] = '1350622400-11645'
param['lastpeerid'] = 'wave/5'
param['answered'] = 'false'
param['reason'] = 'EndedByLocalUser'
Sniffed 'call.cdr' time=1354109289.707908 (broadcast)
thread=0x84480a8 'Engine Worker'
data=(nil)
retval='(null)'
param['time'] = '1354109269.906'
param['chan'] = 'h323/12'
param['cdrid'] = '6463'
param['runid'] = '1350622400'
param['operation'] = 'finalize'
param['direction'] = 'incoming'
param['duration'] = '19.796'
param['billtime'] = '0.000'
param['ringtime'] = '19.732'
param['status'] = 'progressing'
param['external'] = '74832666333'
param['cdrwrite'] = 'true'
param['address'] = '192.168.154.14:51981'
param['billid'] = '1350622400-11645'
param['caller'] = '74832666333'
param['called'] = '74832501501'
param['reason'] = 'EndedByLocalUser'
20121128132809.713450 <h323/12:INFO> YateH323Connection::stoppedExternal(receive) chan=(nil) [0x8446390]
20121128132809.713550 <h323/12:INFO> YateH323Connection::stoppedExternal(send) chan=(nil) [0x8446390]
Returned false 'call.cdr' delay=0.015618 (broadcast)
thread=0x84480a8 'Engine Worker'
data=(nil)
...
Value retval in chan.disconnected messge suggests that either an my error in the syntax or the version yate outdated for this syntax.
I also tried this:
[chan.disconnected]
${id}^h323/=if ${status}^progressing=;error=noconn
but with the same result.
Please, by you opinion, what is wrong?
and how to do it right?
BestRegards,
cc08
p.s. sorry my english