Support A2Billing :

provided by Star2Billing S.L.

Support A2Billing :
It is currently Sun Aug 31, 2014 12:13 am
VoIP Billing solution


All times are UTC




Post new topic Reply to topic  [ 14 posts ] 
Author Message
 Post subject: DTMF via FREEPBX is OK but via A2billing is PROBLEM
PostPosted: Wed Dec 08, 2010 10:40 am 
Offline

Joined: Tue Dec 07, 2010 2:42 pm
Posts: 3
Hi, I have problem with sending digits through OOH323 trunk via A2Billing. When I tried it via extension created in FreePbx everything is OK and called side accepted my DTMF digits. This also worked when I called from another Asterisk connected via SIP trunk to Asterisk with A2Billing. I´m using Asterisk2Billing - Version 1.3.4 (SeamRóg) - Release : 1 Oct 2008 and Asterisk Addons: asterisk-addons-1.4.10.

; Open H.323 driver configuration

[general]
port=1720
bindaddr=0.0.0.0
dtmfmode=h245alphanumeric
dtmfmode=h245signal
gatekeeper=0.0.0.0
h323id=..............
CallerID=.............
e164=.............
gateway=yes
disallow=all
;allow=all
allow=alaw
allow=ulaw
AllowGKRouted=yes
context=from-pstn
faststart=yes
h245tunneling=yes
h245inSetup=yes
mediawaitforconnect=yes
packetization=20

;dtmfmode=inband
dtmfmode=rfc2833
;rfc2833compensate=yes
;dtmfmode=info
;dtmf=rfc2833
;relaxdtmf=yes

additional_a2billing_sip.conf
[222286092]
type=friend
username=222286092
accountcode=222286092
regexten=222286092
callerid=222286092
amaflags=billing
secret=..........
nat=yes
dtmfmode=RFC2833
qualify=no
canreinvite=yes
disallow=all
allow=alaw
allow=ulaw
host=dynamic
context=a2billing
insecure=no
rtptimeout=30
rtpholdtimeout=60
regseconds=0
cancallforward=yes

sip_additional.conf
[222286095]
type=friend
secret=........
qualify=yes
port=5060
pickupgroup=
nat=yes
mailbox=222286095@device
host=dynamic
dtmfmode=rfc2833
dial=SIP/222286095
context=from-internal
canreinvite=no
callgroup=
callerid=device <222286095>
accountcode=
call-limit=50




Thanks you very much for some topic or advice to resolve this problem.
TV


Attachments:
File comment: Sending DTMF via A2Billing and called side don´t accepted my digits
via A2BILLING.txt [27.64 KiB]
Downloaded 142 times
File comment: Sending DTMF without A2Billing and everything is OK
via FreePBX.txt [30.13 KiB]
Downloaded 183 times
Top
 Profile  
 
 Post subject: Re: DTMF via FREEPBX is OK but via A2billing is PROBLEM
PostPosted: Wed Dec 08, 2010 9:27 pm 
Offline
Moderator
User avatar

Joined: Thu Jun 22, 2006 2:19 pm
Posts: 2890
Location: Devon, UK
Perhaps this might be due to using 'RFC2833' in some places, rather than 'rfc2833'.


Top
 Profile  
 
 Post subject: Re: DTMF via FREEPBX is OK but via A2billing is PROBLEM
PostPosted: Thu Dec 09, 2010 8:33 am 
Offline

Joined: Tue Dec 07, 2010 2:42 pm
Posts: 3
Hi, thank you for advice. I tried it and no difference between using rfc or RFC...


Top
 Profile  
 
 Post subject: Re: DTMF via FREEPBX is OK but via A2billing is PROBLEM
PostPosted: Thu Feb 17, 2011 10:36 pm 
Offline

Joined: Thu Feb 17, 2011 10:26 pm
Posts: 6
We are also experiencing the same problem.

Setting the FreePBX outbound route to use the SIP trunk directly works but directing it via A2Billing and having it subsequently use the SIP trunk breaks DTMF.

asterisk-1.6.2.13-96.el5 (ATRPMS)
FreePBX 2.7.0.6
A2Billing 1.8.5 (1.7.1 was behaving the same way)

/etc/asterisk/extensions_custom.conf
[a2billing]
exten => _X.,1,Answer(1)
exten => _X.,n,DeadAGI(a2billing.php,1)
exten => _X.,n,Hangup
exten => h,1,Hangup

[custom-a2billing]
exten => _X.,1,Answer(1)
exten => _X.,n,DeadAGI(a2billing.php,1)
exten => _X.,n,Hangup
exten => h,1,Hangup

[a2billing-did]
exten => _X.,1,DeadAGI(a2billing.php,1,did)
exten => _X.,n,Hangup
exten => h,1,Hangup

[custom-a2billing-did]
exten => _X.,1,DeadAGI(a2billing.php,1,did)
exten => _X.,n,Hangup
exten => h,1,Hangup

[macro-dialout-trunk-predial-hook]
exten => s,1,GotoIf($["${OUT_${DIAL_TRUNK}:4:4}" = "A2B/"]?custom-freepbx-a2billing,${OUTNUM},1:2)
exten => s,n,MacroExit

[custom-freepbx-a2billing]
exten => _X.,1,DeadAGI(a2billing.php,${OUT_${DIAL_TRUNK}:8})
exten => _X.,n,Hangup
exten => h,1,Hangup


FreePBX Custom Trunk:
A2B/1

Asterisk logging data:
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
== Using SIP VRTP TOS bits 136
== Using SIP VRTP CoS mark 6
-- Executing [0117211900@from-internal:1] Macro("SIP/8717847387-00000002", "user-callerid,SKIPTTL,") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/8717847387-00000002", "AMPUSER=8717847387") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("SIP/8717847387-00000002", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("SIP/8717847387-00000002", "1?Set(REALCALLERIDNUM=8717847387)") in new stack
-- Executing [s@macro-user-callerid:4] Set("SIP/8717847387-00000002", "AMPUSER=8717847387") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/8717847387-00000002", "AMPUSERCIDNAME=Syrex Intranets") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("SIP/8717847387-00000002", "0?report") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/8717847387-00000002", "AMPUSERCID=8717847387") in new stack
-- Executing [s@macro-user-callerid:8] Set("SIP/8717847387-00000002", "CALLERID(all)="Syrex Intranets" <8717847387>") in new stack
-- Executing [s@macro-user-callerid:9] ExecIf("SIP/8717847387-00000002", "0?Set(CHANNEL(language)=)") in new stack
-- Executing [s@macro-user-callerid:10] GotoIf("SIP/8717847387-00000002", "1?continue") in new stack
-- Goto (macro-user-callerid,s,19)
-- Executing [s@macro-user-callerid:19] Set("SIP/8717847387-00000002", "CALLERID(number)=8717847387") in new stack
-- Executing [s@macro-user-callerid:20] Set("SIP/8717847387-00000002", "CALLERID(name)=Syrex Intranets") in new stack
-- Executing [s@macro-user-callerid:21] NoOp("SIP/8717847387-00000002", "Using CallerID "Syrex Intranets" <8717847387>") in new stack
-- Executing [0117211900@from-internal:2] Set("SIP/8717847387-00000002", "_NODEST=") in new stack
-- Executing [0117211900@from-internal:3] Macro("SIP/8717847387-00000002", "record-enable,8717847387,OUT,") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("SIP/8717847387-00000002", "1?check") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] ExecIf("SIP/8717847387-00000002", "0?MacroExit()") in new stack
-- Executing [s@macro-record-enable:5] GotoIf("SIP/8717847387-00000002", "0?Group:OUT") in new stack
-- Goto (macro-record-enable,s,15)
-- Executing [s@macro-record-enable:15] GotoIf("SIP/8717847387-00000002", "0?IN") in new stack
-- Executing [s@macro-record-enable:16] ExecIf("SIP/8717847387-00000002", "1?MacroExit()") in new stack
-- Executing [0117211900@from-internal:4] Macro("SIP/8717847387-00000002", "dialout-trunk,3,117211900,,") in new stack
-- Executing [s@macro-dialout-trunk:1] Set("SIP/8717847387-00000002", "DIAL_TRUNK=3") in new stack
-- Executing [s@macro-dialout-trunk:2] GosubIf("SIP/8717847387-00000002", "0?sub-pincheck,s,1") in new stack
-- Executing [s@macro-dialout-trunk:3] GotoIf("SIP/8717847387-00000002", "0?disabletrunk,1") in new stack
-- Executing [s@macro-dialout-trunk:4] Set("SIP/8717847387-00000002", "DIAL_NUMBER=117211900") in new stack
-- Executing [s@macro-dialout-trunk:5] Set("SIP/8717847387-00000002", "DIAL_TRUNK_OPTIONS=tr") in new stack
-- Executing [s@macro-dialout-trunk:6] Set("SIP/8717847387-00000002", "OUTBOUND_GROUP=OUT_3") in new stack
-- Executing [s@macro-dialout-trunk:7] GotoIf("SIP/8717847387-00000002", "1?nomax") in new stack
-- Goto (macro-dialout-trunk,s,9)
-- Executing [s@macro-dialout-trunk:9] GotoIf("SIP/8717847387-00000002", "0?skipoutcid") in new stack
-- Executing [s@macro-dialout-trunk:10] Set("SIP/8717847387-00000002", "DIAL_TRUNK_OPTIONS=") in new stack
-- Executing [s@macro-dialout-trunk:11] Macro("SIP/8717847387-00000002", "outbound-callerid,3") in new stack
-- Executing [s@macro-outbound-callerid:1] ExecIf("SIP/8717847387-00000002", "0?Set(CALLERPRES()=)") in new stack
-- Executing [s@macro-outbound-callerid:2] ExecIf("SIP/8717847387-00000002", "0?Set(REALCALLERIDNUM=8717847387)") in new stack
-- Executing [s@macro-outbound-callerid:3] GotoIf("SIP/8717847387-00000002", "1?normcid") in new stack
-- Goto (macro-outbound-callerid,s,6)
-- Executing [s@macro-outbound-callerid:6] Set("SIP/8717847387-00000002", "USEROUTCID="Syrex Intranets" <0861179739>") in new stack
-- Executing [s@macro-outbound-callerid:7] Set("SIP/8717847387-00000002", "EMERGENCYCID=") in new stack
-- Executing [s@macro-outbound-callerid:8] Set("SIP/8717847387-00000002", "TRUNKOUTCID=") in new stack
-- Executing [s@macro-outbound-callerid:9] GotoIf("SIP/8717847387-00000002", "1?trunkcid") in new stack
-- Goto (macro-outbound-callerid,s,12)
-- Executing [s@macro-outbound-callerid:12] ExecIf("SIP/8717847387-00000002", "0?Set(CALLERID(all)=)") in new stack
-- Executing [s@macro-outbound-callerid:13] ExecIf("SIP/8717847387-00000002", "1?Set(CALLERID(all)="Syrex Intranets" <0861179739>)") in new stack
-- Executing [s@macro-outbound-callerid:14] ExecIf("SIP/8717847387-00000002", "0?Set(CALLERID(all)=)") in new stack
-- Executing [s@macro-outbound-callerid:15] ExecIf("SIP/8717847387-00000002", "0?Set(CALLERPRES()=prohib_passed_screen)") in new stack
-- Executing [s@macro-dialout-trunk:12] ExecIf("SIP/8717847387-00000002", "1?AGI(fixlocalprefix)") in new stack
-- Launched AGI Script /usr/share/asterisk/agi-bin/fixlocalprefix
== fixlocalprefix: Dialpattern 27+XXXXXXXXX matched. 117211900 -> 27117211900
-- <SIP/8717847387-00000002>AGI Script fixlocalprefix completed, returning 0
-- Executing [s@macro-dialout-trunk:13] Set("SIP/8717847387-00000002", "OUTNUM=27117211900") in new stack
-- Executing [s@macro-dialout-trunk:14] Set("SIP/8717847387-00000002", "custom=AMP") in new stack
-- Executing [s@macro-dialout-trunk:15] ExecIf("SIP/8717847387-00000002", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^))") in new stack
-- Executing [s@macro-dialout-trunk:16] Macro("SIP/8717847387-00000002", "dialout-trunk-predial-hook,") in new stack
-- Executing [s@macro-dialout-trunk-predial-hook:1] GotoIf("SIP/8717847387-00000002", "1?custom-freepbx-a2billing,27117211900,1:2") in new stack
-- Goto (custom-freepbx-a2billing,27117211900,1)
== Channel 'SIP/8717847387-00000002' jumping out of macro 'dialout-trunk-predial-hook'
== Channel 'SIP/8717847387-00000002' jumping out of macro 'dialout-trunk'
-- Executing [27117211900@custom-freepbx-a2billing:1] DeadAGI("SIP/8717847387-00000002", "a2billing.php,1") in new stack
[Feb 18 00:33:14] WARNING[15807]: res_agi.c:3312 deadagi_exec: DeadAGI has been deprecated, please use AGI in all cases!
-- Launched AGI Script /usr/share/asterisk/agi-bin/a2billing.php
-- AGI Script Executing Application: (DIAL) Options: (SIP/ECN_JHB_CLI/0117211900,60,HRrL(2147483647:61000:30000))
-- Limit Data for this call:
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
== Using SIP VRTP TOS bits 136
== Using SIP VRTP CoS mark 6
-- Called ECN_JHB_CLI/0117211900
-- SIP/ECN_JHB_CLI-00000003 is making progress passing it to SIP/8717847387-00000002
[Feb 18 00:33:15] WARNING[15807]: dsp.c:1360 ast_dsp_process: Inband DTMF is not supported on codec g729. Use RFC2833
-- SIP/ECN_JHB_CLI-00000003 answered SIP/8717847387-00000002
-- Executing [h@custom-freepbx-a2billing:1] Hangup("SIP/8717847387-00000002", "") in new stack
-- <SIP/8717847387-00000002>AGI Script a2billing.php completed, returning -1


Top
 Profile  
 
 Post subject: Re: DTMF via FREEPBX is OK but via A2billing is PROBLEM
PostPosted: Thu Feb 17, 2011 11:48 pm 
Offline

Joined: Fri Jun 23, 2006 3:56 pm
Posts: 3927
Could this be the issue?


[Feb 18 00:33:15] WARNING[15807]: dsp.c:1360 ast_dsp_process: Inband DTMF is not supported on codec g729. Use RFC2833


Joe


Top
 Profile  
 
 Post subject: Re: DTMF via FREEPBX is OK but via A2billing is PROBLEM
PostPosted: Sat Feb 19, 2011 8:00 am 
Offline

Joined: Thu Feb 17, 2011 10:26 pm
Posts: 6
No, I think that this is simply informational. As mentioned before, the trunk works perfectly when we select it directly in the outbound route. If we set the outbound route to use the custom 'A2B/1' trunk, which in turn uses the FreePBX configured SIP trunk DTMF does not work.


Top
 Profile  
 
 Post subject: Re: DTMF via FREEPBX is OK but via A2billing is PROBLEM
PostPosted: Sat Feb 19, 2011 8:09 am 
Offline

Joined: Fri Jun 23, 2006 3:56 pm
Posts: 3927
Hi

For interest, make a call via FreePBX, and do sip show channels as you make the call, and note the codecs used, then repeat the experiment via A2Billing, just to confirm that this is not the problem.

Also in logger.conf, you can add DTMF as a debug item, and then tail the full log which contains far more information.

Joe


Top
 Profile  
 
 Post subject: Re: DTMF via FREEPBX is OK but via A2billing is PROBLEM
PostPosted: Sun Feb 20, 2011 11:10 am 
Offline

Joined: Thu Feb 17, 2011 10:26 pm
Posts: 6
I don't see a difference:

when setting outbound route to use trunk directly:
Peer User/ANR Call ID Format Hold Last Message Expiry
41.221.0.33 0117211900 509e78804306f56 0x100 (g729) No Tx: ACK
165.146.21.234 s 5936bffa04c6bfc 0x100 (g729) No Rx: ACK



when setting outbound route to use A2b/1 which then selects the trunk:
Peer User/ANR Call ID Format Hold Last Message Expiry
41.221.0.33 0117211900 03a28aed2880122 0x100 (g729) No Tx: ACK
165.146.21.234 s 304135b36981a2c 0x100 (g729) No Rx: ACK


Top
 Profile  
 
 Post subject: Re: DTMF via FREEPBX is OK but via A2billing is PROBLEM
PostPosted: Mon Feb 21, 2011 11:24 am 
Offline

Joined: Thu Feb 17, 2011 10:26 pm
Posts: 6
Nothing usefull in the DTMF logs, appears that it should simply be working:

[Feb 21 13:16:39] DTMF[30640] channel.c: DTMF begin '8' received on SIP/8717847387-00000020
[Feb 21 13:16:39] DTMF[30640] channel.c: DTMF begin passthrough '8' on SIP/8717847387-00000020
[Feb 21 13:16:39] DTMF[30640] channel.c: DTMF end '8' received on SIP/8717847387-00000020, duration 180 ms
[Feb 21 13:16:39] DTMF[30640] channel.c: DTMF end accepted with begin '8' on SIP/8717847387-00000020
[Feb 21 13:16:39] DTMF[30640] channel.c: DTMF end passthrough '8' on SIP/8717847387-00000020


Top
 Profile  
 
 Post subject: Re: DTMF via FREEPBX is OK but via A2billing is PROBLEM
PostPosted: Tue Feb 22, 2011 2:34 pm 
Offline

Joined: Thu Feb 17, 2011 10:26 pm
Posts: 6
Combing through a wireshark capture shows the SSRC changing with each DTMF. Weird that this doesn't happen when selecting the SIP trunk directly but this is a bug that was introduced in Asterisk 1.6.2.11.

NB: Herewith clarification that an Asterisk installation was sending calls to our setup (A2Billing + FreePBX + Asterisk 1.6.2.13-96) which was sending it on using a SIP trunk. If we set FreePBX to use the SIP trunk directly for these destinations everything worked. When selecting the FreePBX custom trunk 'A2B/1' the DTMF was not working.

Patch detailed here is confirmed to have fixed the issue:
http://svnview.digium.com/svn/asterisk? ... w=revision

from:
main/channel.c
ast_indicate(c0, AST_CONTROL_SRCCHANGE);
ast_indicate(c1, AST_CONTROL_SRCCHANGE);


to:
main/channel.c
ast_indicate(c0, AST_CONTROL_SRCUPDATE);
ast_indicate(c1, AST_CONTROL_SRCUPDATE);


Top
 Profile  
 
 Post subject: Re: DTMF via FREEPBX is OK but via A2billing is PROBLEM
PostPosted: Wed Feb 23, 2011 7:45 am 
Offline

Joined: Fri Jun 23, 2006 3:56 pm
Posts: 3927
Hi

That looks like a nasty, and difficult little bug to find, good effort on your perseverance.

Joe


Top
 Profile  
 
 Post subject: Re: DTMF via FREEPBX is OK but via A2billing is PROBLEM
PostPosted: Fri Feb 25, 2011 9:53 am 
Offline

Joined: Tue Dec 07, 2010 2:42 pm
Posts: 3
Hi guys,
I´m solve problem by setting RFC2833 for extensions in SIP.CONF and for OOH323 trunk, but on SIP equipment I need to set INBand for DTMF and now sending DTMF is OK.


Top
 Profile  
 
 Post subject: Re: DTMF via FREEPBX is OK but via A2billing is PROBLEM
PostPosted: Fri Jun 03, 2011 6:20 pm 
Offline

Joined: Wed May 26, 2010 5:39 pm
Posts: 30
Hi,

Is it enough to just change those two lines (by manually editing) in /main/channel.c ?

I have done that and did not observe any change.

Please advise.

Burak


Top
 Profile  
 
 Post subject: Re: DTMF via FREEPBX is OK but via A2billing is PROBLEM
PostPosted: Fri Jun 03, 2011 8:37 pm 
Offline

Joined: Wed May 26, 2010 5:39 pm
Posts: 30
Hi

I have Asterisk 1.4.38 and A2Billing 1.8.5

I always thought RFC2833 would be the best method but after not being able to send dtmf with the above configuration, I have spent quite some time to figure out and tested all dtmfmodes (rfc2833|info|inband|auto).

Also, I found the below two sources valuable

http://www.voip-info.org/wiki/view/Asterisk+DTMF
http://www.voip-info.org/wiki/view/Aste ... p+dtmfmode

Considering above, I figured dtmfmode=rfc2833 or dtmfmode=info would be the best choices.

The first one is the default everywhere and was not working for me (there seems to be asterisk patches, etc, but ...)

So I used dtmfmode=info on the trunks (or in sip_general_custom_conf) and voila! (Do not forget to reload asterisk, if you put it in the conf file).

Out of band works!

My devices and A2Billing VoIP Settings are all at their defaults Normally RFC2833.

Thought might help.

Burak


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 14 posts ] 
VoIP Billing solution


All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group