Author Topic: Replace cause release in h323chan  (Read 7777 times)

cc08

  • Guest
Replace cause release in h323chan
« on: November 28, 2012, 02:52:05 PM »
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:

Code: [Select]
[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)

Code: [Select]
[extra]
chan.disconnected=30

[chan.disconnected]
${id}^h323/=if ${status}^progressing=;cause_q931=1

But result is no. (from snifer I see)

Code: [Select]
...
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:

Code: [Select]
[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