Support A2Billing :

provided by Star2Billing S.L.

Support A2Billing :
It is currently Thu Mar 28, 2024 1:23 pm
VoIP Billing solution


All times are UTC




Post new topic Reply to topic  [ 43 posts ]  Go to page Previous  1, 2, 3  Next
Author Message
 Post subject: AGI still has problems, Asterisk is recent.
PostPosted: Wed Nov 14, 2007 7:42 am 
Offline

Joined: Tue Nov 13, 2007 10:03 pm
Posts: 6
Eduardo:

I have tried substituting that DeadAGI call for AGI and get the same "all circuits are busy" result, however there is no error message in the log.

Anest: The version string from Asterisk reports;

"Asterisk 1.4.13 built by root @ centos5-rpmbuilder.palosanto.com on a i686 running Linux on 2007-10-29 18:33:02 UTC"

How does A2Billing know which calling card to allocate to an extension created in FreePBX? I am unclear as to how the two should be configured. Could this be the problem?

I have a working calling card that was generated within A2Billing to verify that there is a valid calling plan.

Any further thoughts?

Many thanks for your assistance.

All best,
Chris.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Nov 14, 2007 10:56 am 
Offline

Joined: Thu Jun 14, 2007 2:20 am
Posts: 23
Location: Brasil
Chris,

The way to tell a2b to use a specific card for an extension created in freePBX is by going in the Customers-->List Customers-->Edit and then at the bottom of the page you use the "Add a new CALLERID" to enter the extension number(s) (from freePBX) that will use this calling card.

Note that you should also configure the trunk in a2b with the same name as you gave it in freePBX for a2b to find it and use it.

Cheers,

Eduardo


Top
 Profile  
 
 Post subject: Extensions nows configures - still all routes are busy! :(
PostPosted: Wed Nov 14, 2007 9:51 pm 
Offline

Joined: Tue Nov 13, 2007 10:03 pm
Posts: 6
Eduardo,

That makes perfect sense, I have added the extensions are CLIDs against the sample calling card I have created. This card works fine with a client definition set up within A2Billing itself.

This does not seem to cure the problem. I am looking at the Asterisk log which shows that a2billing.php has been run but it seems vague about anything hapening within, aside from outbusy being returned. Looking at the a2billing.log I see no references writen for the test calls I am placing - where would you expect the feedback to be?

Is it possible to turn up the debug verbosity within either Asterisk or A2Billing?

I am determined to get this working as it seems to be exactly the solution I am looking for!

Many thanks for your continued patience.

All best,
Chris.


Top
 Profile  
 
 Post subject: Re: Extensions nows configures - still all routes are busy!
PostPosted: Wed Nov 14, 2007 10:12 pm 
Offline
Moderator
User avatar

Joined: Thu Jun 22, 2006 2:19 pm
Posts: 2890
Location: Devon, UK
ChrisUK1978 wrote:
Is it possible to turn up the debug verbosity within either Asterisk or A2Billing?
For A2B set 'debug=3' in each [agi-confX] section of a2billing.conf. Whilst at the indispensable Asterisk CLI use 'set verbose 15'.


Top
 Profile  
 
 Post subject: Logging gives no clues.
PostPosted: Wed Nov 14, 2007 10:24 pm 
Offline

Joined: Tue Nov 13, 2007 10:03 pm
Posts: 6
Stavros,

Thanks for the input.

It seems that turning up the verbosity and restarting gives no other clues. It is almost as though A2Billing is not seeing the request, despite sensible inputs from Asterisk.

Any thoughts on how I can better track this one down?

All best,
Chris.


Top
 Profile  
 
 Post subject: Working.
PostPosted: Thu Nov 15, 2007 5:49 pm 
Offline

Joined: Tue Nov 13, 2007 10:03 pm
Posts: 6
Eduardo, Stavros,

I have managed to resolve the issues with minor modification to Erobes procedure earlier.

Thank you so much to everyone that pitched in with this one.

Here is the step by step procedure:

1: Go to FreePBX, Setup, Trunks, Create Custom Trunk.
2: Create whatever dial rules you need to translate the dialed number before passing it to a2billing.
3: In the Custom Trunk String enter without the quotes "A2B/$OUTNUM$"
4: Save it and you will see a new route called 2B/$OUTNUM$. It is fine, is just a glitch with FreePBX.
5: Go to Outbound Routes, Create or Modify your Long Distance route and point it to AMP:A2B/$OUTNUM$
6: Important: be sure to check the Intra Company Route option. This ensures that you preserve the original extension ID when dialing out.
7: Now Edit Extensions.conf and look for macro-dialout-trunk and find the line that contains:

Code:
exten => s,n(skipoutnum),Dial(${pre_num:4}${the_num}${post_num},300,${DIAL_TRUNK_OPTIONS})

Replace that line with the code below (which will preserve the original line so you know what you changed)

; Modified to support outbound calling for A2B while keeping trunk Dial Rules working
; original line: exten => s,n(skipoutnum),Dial(${pre_num:4}${the_num}${post_num},300,${DIAL_TRUNK_OPTIONS})
; added function:
exten => s,n(skipoutnum),GotoIf($["${pre_num}" = "AMP:A2B/"]?a2bdial:skipoutnumnormal) ; Checks for A2B custom trunk and dials it.
exten => s,n(a2bdial),DeadAGI(a2billing.php|1|${OUTNUM}) ; Dials out via the a2billing.php script. Note the ${OUTNUM} parameter.  The number between a2billing.php and ${OUTNUM} must indicate a valid agi context in a2billing.conf!  If using default configs this should always be 1.
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s,n(skipoutnumnormal),Dial(${pre_num:4}${the_num}${post_num},300,${DIAL_TRUNK_OPTIONS})
; end of modified additions


8: Save extensions.conf
9: Go to your Asterisk CLI and issue a reload request. Now we are done with FreePBX.
10: Go to /var/lib/asterisk/agi-bin and edit a2billing.php
11: There are two modifications to introduce here. First look for the lines that contains the following code:

Code:
if ($argc > 1 && is_numeric($argv[1]) && $argv[1] >= 0){
   $idconfig = $argv[1];
}else{
   $idconfig = 1;
}

Then add the following three lines right below that:

if ($argc > 2 && is_numeric($argv[2]) && $argv[2] >= 0){   //NEW NEW NEW
   $the_num = $argv[2];         //NEW NEW NEW
}                              //NEW NEW NEW

Now locate the line that contains the following code:

$A2B->dnid = $agi->request['agi_dnid'];

and replace it with the following code:

// Original line replaced was: $A2B->dnid = $agi->request['agi_dnid'];
// Here we test if the call comes from the macro-dialout-trunk context in freePBX
// and set the dnid to be the parameter passed to a2billing
if($agi->request['agi_context'] == "macro-dialout-trunk")   //NEW NEW NEW
   $A2B->dnid = $the_num;            //NEW NEW NEW
else                        //NEW NEW NEW
$A2B->dnid = $agi->request['agi_dnid'];   //NEW NEW NEW
// End of modifications            //NEW NEW NEW


12: Save a2billing.php
13: Go to /etc/asterisk and edit a2billing.config. Look for the line:

Code:
; Find
use_dnid = NO
; and change to
use_dnid = YES

; Find
number_try = 3
; and change to
number_try = 1

; Find
cid_enable = NO
; and change to
cid_enable = YES

;At your preference, you may also wish to change the following

; Find
say_balance_after_auth = YES
; and change to
say_balance_after_auth = NO

; Find
say_timetocall = YES
; and change to
say_timetocall = NO


14: That's it!

Now you should be able to manage your extensions from freePBX and whenever the A2B route is seized, the calls pass over the control of a2billing rating engine, reporting, and so on.


Last edited by ChrisUK1978 on Fri Nov 16, 2007 7:42 am, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Thu Nov 15, 2007 10:47 pm 
Offline

Joined: Thu Jun 14, 2007 2:20 am
Posts: 23
Location: Brasil
Very good to know that it is working fine for you too, and thanks for the update.

Cheers,

Eduardo.


Top
 Profile  
 
 Post subject: One Touch Recording (On Demand Recording) broken.
PostPosted: Tue Nov 20, 2007 4:35 pm 
Offline

Joined: Tue Nov 13, 2007 10:03 pm
Posts: 6
Hi again,

I note that with the above modification the one touch record (*1) does not work for calls passed to the a2b trunk. Is this a general problem with no DTMF recognition by Asterisk after the call is handed off?

I have wW in both the Trunk Options and Trunk Dial strings in FreePBX->General Settings, and it works fine with calls between local extensions.

Any idea whether it is possible to retain DTMF recognition for calls handed off to the a2b trunk.

The system is almost exactly what I am looking for now, any help would be greatly appreciated.

All best,
Chris.


Top
 Profile  
 
 Post subject: Splendid
PostPosted: Sun Dec 30, 2007 4:17 pm 
Offline
User avatar

Joined: Sat Jun 02, 2007 5:59 am
Posts: 63
Location: Orlando, Fl
I wanted to thank you guys for this post! This mod allowed me to provide simple emplementation of extensions without losing valuable features such as voice mail and call forwarding that my clients desperately need.

This used in conjunction with DID billing information provided here http://forum.asterisk2billing.org/viewtopic.php?t=745 provides a simple all around solution to my needs!

God Bless you and happy new year!

:D


Top
 Profile  
 
 Post subject: How to pass OCN as CID to %OUTNUM% Trunk
PostPosted: Sun Jan 13, 2008 4:28 am 
Offline
User avatar

Joined: Sat Jun 02, 2007 5:59 am
Posts: 63
Location: Orlando, Fl
I am using the %OUTNUM% trunk with great success. I need some help though. When I set call forwarding on one of my extension and a call is placed to that extension A2Billing is asking for a pin number. I need to pass the EXTENSION as the CID. Can any one please help me with this?

Also- when I use DID billing for the DID they purchased I have no problem routing the call to the designated asterisk extension. The problem is that I would like for follow me, call forwarding, and voice mail to work. No matter what I try, whether I send the call to a ring group or anything else, only the extension will ring. Oh - when I send calls to a ring group number - they fail..

Can anyone help with either of these scenarios?


Thanks in advance! :D


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 13, 2008 5:17 pm 
Offline
Moderator
User avatar

Joined: Thu Jun 22, 2006 2:19 pm
Posts: 2890
Location: Devon, UK
smixon wrote:
I need to pass the EXTENSION as the CID. Can any one please help me with this?
Code:
exten _X.,n,Set(CALLERID(num)=${EXTEN})
or whatever the Asterisk 1.4 equivalent is.

As for your other questions they sound as though they might be specific to trixbox, rather than plain Asterisk as you stated.

Added after 5 minutes:

Of course if I'd read the title of the thread it would have been obvious to me you were referring to FreePBX. :oops:


Top
 Profile  
 
 Post subject: I tried this and it did not work
PostPosted: Sun Jan 13, 2008 7:38 pm 
Offline
User avatar

Joined: Sat Jun 02, 2007 5:59 am
Posts: 63
Location: Orlando, Fl
Hi Stavros,

Thanks! Now I am wondering if I place this in the extensions.conf file where the modification was made or does it go to the call forwarding macro?

This is the modified macro:


exten => s,n(skipoutnum),Dial(${pre_num:4}${the_num}${post_num},300,${DIAL_TRUNK_OPTIONS})

Replace that line with the code below (which will preserve the original line so you know what you changed)

; Modified to support outbound calling for A2B
; original line: exten => s,n(skipoutnum),Dial(${pre_num:4}${the_num}${post_num},300,${DIAL_TRUNK_OPTIONS})
; added function
exten => s,n(skipoutnum),GotoIf($["${pre_num}" = "AMP:A2B/"]?a2bdial:skipoutnumnormal) ; Checks for A2B custom trunk and dials it.
exten => s,n(a2bdial),DeadAGI(a2billing.php|1) ; Dials out via the a2billing.php script.
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s,n(skipoutnumnormal),Dial(${pre_num:4}${the_num}${post_num},300,${DIAL_TRUNK_OPTIONS})
; end of modified additions

Added after 32 minutes:

; Modified to support outbound calling for A2B while keeping trunk Dial Rules working
; original line: exten => s,n(skipoutnum),Dial(${pre_num:4}${the_num}${post_num},300,${DIAL_TRUNK_OPTIONS})
; added function:
exten _X.,n,Set(CALLERID(num)=${EXTEN})
exten => s,n(skipoutnum),GotoIf($["${pre_num}" = "AMP:A2B/"]?a2bdial:skipoutnumnormal) ; Checks for A2B custom trunk and dials it.
exten => s,n(a2bdial),DeadAGI(a2billing.php|2|${OUTNUM}) ; Dials out via the a2billing.php script. Note the ${OUTNUM} parameter. The number between a2billing.php and ${OUTNUM} must indicate a valid agi context in a2billing.conf! If using default configs this should always be 1.
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s,n(skipoutnumnormal),Dial(${pre_num:4}${the_num}${post_num},300,${DIAL_TRUNK_OPTIONS})
; end of modified additions
exten => s,n,Goto(s-${DIALSTATUS},1)


DEBUG

-- Executing [s@macro-dial:10] Dial("SIP/dire_fvw3g-b7d26620", "Local/12396455991@from-internal/n||tr") in new stack
-- Called 12396455991@from-internal/n
-- Executing [12396455991@from-internal:1] Macro("Local/12396455991@from-internal-930a,2", "dialout-trunk|3|12396455991||" ) in new stack
-- Executing [s@macro-dialout-trunk:1] Set("Local/12396455991@from-internal-930a,2", "DIAL_TRUNK=3") in new stack
-- Executing [s@macro-dialout-trunk:2] Set("Local/12396455991@from-internal-930a,2", "DIAL_NUMBER=12396455991") in new sta ck
-- Executing [s@macro-dialout-trunk:3] Set("Local/12396455991@from-internal-930a,2", "ROUTE_PASSWD=") in new stack
-- Executing [s@macro-dialout-trunk:4] GotoIf("Local/12396455991@from-internal-930a,2", "1?noauth") in new stack
-- Goto (macro-dialout-trunk,s,6)
-- Executing [s@macro-dialout-trunk:6] GotoIf("Local/12396455991@from-internal-930a,2", "0?disabletrunk|1") in new stack
-- Executing [s@macro-dialout-trunk:7] Set("Local/12396455991@from-internal-930a,2", "_NODEST=") in new stack
-- Executing [s@macro-dialout-trunk:8] Set("Local/12396455991@from-internal-930a,2", "DIAL_TRUNK_OPTIONS=tr") in new stack
-- Executing [s@macro-dialout-trunk:9] Set("Local/12396455991@from-internal-930a,2", "GROUP()=OUT_3") in new stack
-- Executing [s@macro-dialout-trunk:10] Macro("Local/12396455991@from-internal-930a,2", "user-callerid|SKIPTTL") in new st ack
-- Executing [s@macro-user-callerid:1] NoOp("Local/12396455991@from-internal-930a,2", "user-callerid: 3214458000 321445800 0") in new stack
-- Executing [s@macro-user-callerid:2] Set("Local/12396455991@from-internal-930a,2", "AMPUSER=3214458000") in new stack
-- Executing [s@macro-user-callerid:3] GotoIf("Local/12396455991@from-internal-930a,2", "1?report") in new stack
-- Goto (macro-user-callerid,s,13)
-- Executing [s@macro-user-callerid:13] NoOp("Local/12396455991@from-internal-930a,2", "TTL: 64 ARG1: SKIPTTL") in new sta ck
-- Executing [s@macro-user-callerid:14] GotoIf("Local/12396455991@from-internal-930a,2", "1?continue") in new stack
-- Goto (macro-user-callerid,s,23)
-- Executing [s@macro-user-callerid:23] NoOp("Local/12396455991@from-internal-930a,2", "Using CallerID "3214458000" <32144 58000>") in new stack
-- Executing [s@macro-dialout-trunk:11] Macro("Local/12396455991@from-internal-930a,2", "record-enable|3214458000|OUT") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("Local/12396455991@from-internal-930a,2", "0?2:4") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] AGI("Local/12396455991@from-internal-930a,2", "recordingcheck|20080113-143218|12002 52738.418") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
recordingcheck|20080113-143218|1200252738.418: No AMPUSER db entry for 3214458000. Not recording
-- AGI Script recordingcheck completed, returning 0
-- Executing [s@macro-record-enable:5] NoOp("Local/12396455991@from-internal-930a,2", "No recording needed") in new stack
-- Executing [s@macro-dialout-trunk:12] GotoIf("Local/12396455991@from-internal-930a,2", "0?skipoutcid") in new stack
-- Executing [s@macro-dialout-trunk:13] Set("Local/12396455991@from-internal-930a,2", "DIAL_TRUNK_OPTIONS=") in new stack
-- Executing [s@macro-dialout-trunk:14] Macro("Local/12396455991@from-internal-930a,2", "outbound-callerid|3") in new stac k
-- Executing [s@macro-outbound-callerid:1] GotoIf("Local/12396455991@from-internal-930a,2", "0?start") in new stack
-- Executing [s@macro-outbound-callerid:2] Set("Local/12396455991@from-internal-930a,2", "REALCALLERIDNUM=3214458000") in new stack
-- Executing [s@macro-outbound-callerid:3] NoOp("Local/12396455991@from-internal-930a,2", "REALCALLERIDNUM is 3214458000") in new stack
-- Executing [s@macro-outbound-callerid:4] GotoIf("Local/12396455991@from-internal-930a,2", "0?normcid") in new stack
-- Executing [s@macro-outbound-callerid:5] GotoIf("Local/12396455991@from-internal-930a,2", "0?normcid") in new stack
-- Executing [s@macro-outbound-callerid:6] GotoIf("Local/12396455991@from-internal-930a,2", "0?normcid") in new stack
-- Executing [s@macro-outbound-callerid:7] Set("Local/12396455991@from-internal-930a,2", "USEROUTCID=3214458000") in new s tack
-- Executing [s@macro-outbound-callerid:8] GotoIf("Local/12396455991@from-internal-930a,2", "1?bypass:normcid") in new sta ck
-- Goto (macro-outbound-callerid,s,10)
-- Executing [s@macro-outbound-callerid:10] Set("Local/12396455991@from-internal-930a,2", "EMERGENCYCID=") in new stack
-- Executing [s@macro-outbound-callerid:11] Set("Local/12396455991@from-internal-930a,2", "TRUNKOUTCID=") in new stack
-- Executing [s@macro-outbound-callerid:12] GotoIf("Local/12396455991@from-internal-930a,2", "1?trunkcid") in new stack
-- Goto (macro-outbound-callerid,s,16)
-- Executing [s@macro-outbound-callerid:16] GotoIf("Local/12396455991@from-internal-930a,2", "1?usercid") in new stack
-- Goto (macro-outbound-callerid,s,18)
-- Executing [s@macro-outbound-callerid:18] GotoIf("Local/12396455991@from-internal-930a,2", "0?report") in new stack
-- Executing [s@macro-outbound-callerid:19] Set("Local/12396455991@from-internal-930a,2", "CALLERID(all)=3214458000") in n ew stack
-- Executing [s@macro-outbound-callerid:20] GotoIf("Local/12396455991@from-internal-930a,2", "1?report:hidecid") in new st ack
-- Goto (macro-outbound-callerid,s,22)
-- Executing [s@macro-outbound-callerid:22] NoOp("Local/12396455991@from-internal-930a,2", "CallerID set to "" <3214458000 >") in new stack
-- Executing [s@macro-dialout-trunk:15] GotoIf("Local/12396455991@from-internal-930a,2", "1?nomax") in new stack
-- Goto (macro-dialout-trunk,s,17)
-- Executing [s@macro-dialout-trunk:17] AGI("Local/12396455991@from-internal-930a,2", "fixlocalprefix") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/fixlocalprefix
-- AGI Script fixlocalprefix completed, returning 0
-- Executing [s@macro-dialout-trunk:18] Set("Local/12396455991@from-internal-930a,2", "OUTNUM=12396455991") in new stack
-- Executing [s@macro-dialout-trunk:19] Set("Local/12396455991@from-internal-930a,2", "custom=AMP") in new stack
-- Executing [s@macro-dialout-trunk:20] GotoIf("Local/12396455991@from-internal-930a,2", "1?gocall") in new stack
-- Goto (macro-dialout-trunk,s,24)
-- Executing [s@macro-dialout-trunk:24] GotoIf("Local/12396455991@from-internal-930a,2", "1?customtrunk") in new stack
-- Goto (macro-dialout-trunk,s,27)
-- Executing [s@macro-dialout-trunk:27] Set("Local/12396455991@from-internal-930a,2", "pre_num=AMP:A2B/") in new stack
-- Executing [s@macro-dialout-trunk:28] Set("Local/12396455991@from-internal-930a,2", "the_num=OUTNUM") in new stack
-- Executing [s@macro-dialout-trunk:29] Set("Local/12396455991@from-internal-930a,2", "post_num=") in new stack
-- Executing [s@macro-dialout-trunk:30] GotoIf("Local/12396455991@from-internal-930a,2", "1?outnum:skipoutnum") in new sta ck
-- Goto (macro-dialout-trunk,s,31)
-- Executing [s@macro-dialout-trunk:31] Set("Local/12396455991@from-internal-930a,2", "the_num=12396455991") in new stack
-- Executing [s@macro-dialout-trunk:32] GotoIf("Local/12396455991@from-internal-930a,2", "1?a2bdial:skipoutnumnormal") in new stack
-- Goto (macro-dialout-trunk,s,33)
-- Executing [s@macro-dialout-trunk:33] DeadAGI("Local/12396455991@from-internal-930a,2", "a2billing.php|2|12396455991") i n new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/a2billing.php
a2billing.php|2|12396455991: A2Billing AGI internal configuration:
a2billing.php|2|12396455991: Array
a2billing.php|2|12396455991: (
a2billing.php|2|12396455991: [debug] => 1
a2billing.php|2|12396455991: [asterisk_version] => 1_2
a2billing.php|2|12396455991: [answer_call] => 1
a2billing.php|2|12396455991: [play_audio] => 1
a2billing.php|2|12396455991: [say_goodbye] =>
a2billing.php|2|12396455991: [play_menulanguage] =>
a2billing.php|2|12396455991: [force_language] =>
a2billing.php|2|12396455991: [intro_prompt] =>
a2billing.php|2|12396455991: [min_credit_2call] => 0
a2billing.php|2|12396455991: [min_duration_2bill] => 0
a2billing.php|2|12396455991: [notenoughcredit_cardnumber] => 1
a2billing.php|2|12396455991: [notenoughcredit_assign_newcardnumber_cid] => 1
a2billing.php|2|12396455991: [use_dnid] => 1
a2billing.php|2|12396455991: [no_auth_dnid] => Array
a2billing.php|2|12396455991: (
a2billing.php|2|12396455991: [0] => 2400
a2billing.php|2|12396455991: [1] => 2300
a2billing.php|2|12396455991: )
a2billing.php|2|12396455991:
a2billing.php|2|12396455991: [number_try] => 1
a2billing.php|2|12396455991: [force_callplan_id] =>
a2billing.php|2|12396455991: [say_balance_after_auth] =>
a2billing.php|2|12396455991: [say_balance_after_call] =>
a2billing.php|2|12396455991: [say_rateinitial] =>
a2billing.php|2|12396455991: [say_timetocall] =>
a2billing.php|2|12396455991: [auto_setcallerid] => 1
a2billing.php|2|12396455991: [force_callerid] =>
a2billing.php|2|12396455991: [cid_sanitize] =>
a2billing.php|2|12396455991: [cid_enable] => 1
a2billing.php|2|12396455991: [cid_askpincode_ifnot_callerid] => 1
a2billing.php|2|12396455991: [cid_auto_assign_card_to_cid] => 1
a2billing.php|2|12396455991: [cid_auto_create_card] =>
a2billing.php|2|12396455991: [cid_auto_create_card_len] => 10
a2billing.php|2|12396455991: [cid_auto_create_card_typepaid] => POSTPAY
a2billing.php|2|12396455991: [cid_auto_create_card_credit] => 0
a2billing.php|2|12396455991: [cid_auto_create_card_credit_limit] => 1000
a2billing.php|2|12396455991: [cid_auto_create_card_tariffgroup] => 6
a2billing.php|2|12396455991: [callerid_authentication_over_cardnumber] =>
a2billing.php|2|12396455991: [sip_iax_friends] =>
a2billing.php|2|12396455991: [sip_iax_pstn_direct_call_prefix] => 555
a2billing.php|2|12396455991: [sip_iax_pstn_direct_call] =>
a2billing.php|2|12396455991: [ivr_voucher] =>
a2billing.php|2|12396455991: [ivr_voucher_prefix] => 8
a2billing.php|2|12396455991: [jump_voucher_if_min_credit] =>
a2billing.php|2|12396455991: [extracharge_did] => Array
a2billing.php|2|12396455991: (
a2billing.php|2|12396455991: [0] =>
a2billing.php|2|12396455991: )
a2billing.php|2|12396455991:
a2billing.php|2|12396455991: [extracharge_fee] => Array
a2billing.php|2|12396455991: (
a2billing.php|2|12396455991: [0] =>
a2billing.php|2|12396455991: )
a2billing.php|2|12396455991:
a2billing.php|2|12396455991: [international_prefixes] => Array
a2billing.php|2|12396455991: (
a2billing.php|2|12396455991: [0] => 011
a2billing.php|2|12396455991: [1] => 00
a2billing.php|2|12396455991: [2] => 09
a2billing.php|2|12396455991: [3] => 1
a2billing.php|2|12396455991: )
a2billing.php|2|12396455991:
a2billing.php|2|12396455991: [dialcommand_param] => |60|HRgrL(%timeout%:61000:30000)
a2billing.php|2|12396455991: [dialcommand_param_sipiax_friend] => |60|HRgirL(3600000:61000:30000)
a2billing.php|2|12396455991: [switchdialcommand] =>
a2billing.php|2|12396455991: [failover_recursive_limit] => 2
a2billing.php|2|12396455991: [maxtime_tocall_negatif_free_route] => 5400
a2billing.php|2|12396455991: [send_reminder] =>
a2billing.php|2|12396455991: [record_call] =>
a2billing.php|2|12396455991: [monitor_formatfile] => gsm
a2billing.php|2|12396455991: [agi_force_currency] =>
a2billing.php|2|12396455991: [currency_association] => Array
a2billing.php|2|12396455991: (
a2billing.php|2|12396455991: [0] => usd:dollars
a2billing.php|2|12396455991: [1] => mxn:pesos
a2billing.php|2|12396455991: [2] => eur:euros
a2billing.php|2|12396455991: [3] => all:credit
a2billing.php|2|12396455991: )
a2billing.php|2|12396455991:
a2billing.php|2|12396455991: [file_conf_enter_destination] => prepaid-enter-dest
a2billing.php|2|12396455991: [file_conf_enter_menulang] => prepaid-menulang2
a2billing.php|2|12396455991: [callback_bill_1stleg_ifcall_notconnected] => 1
a2billing.php|2|12396455991: [logger_enable] => 1
a2billing.php|2|12396455991: [log_file] => /tmp/a2billing.log
a2billing.php|2|12396455991: [currency_association_internal] => Array
a2billing.php|2|12396455991: (
a2billing.php|2|12396455991: [usd] => dollars
a2billing.php|2|12396455991: [mxn] => pesos
a2billing.php|2|12396455991: [eur] => euros
a2billing.php|2|12396455991: [all] => credit
a2billing.php|2|12396455991: )
a2billing.php|2|12396455991:
a2billing.php|2|12396455991: [ivr_voucher_prefixe] => 8
a2billing.php|2|12396455991: )
a2billing.php|2|12396455991:
a2billing.php|2|12396455991: file:a2billing.php - line:78 - IDCONFIG : 2
a2billing.php|2|12396455991: file:a2billing.php - line:79 - MODE : standard
a2billing.php|2|12396455991: file:a2billing.php - line:91 - AGI Request:
a2billing.php|2|12396455991: file:a2billing.php - line:92 - Array
a2billing.php|2|12396455991: (
a2billing.php|2|12396455991: [agi_request] => a2billing.php
a2billing.php|2|12396455991: [agi_channel] => Local/12396455991@from-internal-930a,2
a2billing.php|2|12396455991: [agi_language] => en
a2billing.php|2|12396455991: [agi_type] => Local
a2billing.php|2|12396455991: [agi_uniqueid] => 1200252738.418
a2billing.php|2|12396455991: [agi_callerid] => 3214458000
a2billing.php|2|12396455991: [agi_calleridname] => unknown
a2billing.php|2|12396455991: [agi_callingpres] => 0
a2billing.php|2|12396455991: [agi_callingani2] => 0
a2billing.php|2|12396455991: [agi_callington] => 0
a2billing.php|2|12396455991: [agi_callingtns] => 0
a2billing.php|2|12396455991: [agi_dnid] => unknown
a2billing.php|2|12396455991: [agi_rdnis] => unknown
a2billing.php|2|12396455991: [agi_context] => macro-dialout-trunk
a2billing.php|2|12396455991: [agi_extension] => s
a2billing.php|2|12396455991: [agi_priority] => 33
a2billing.php|2|12396455991: [agi_enhanced] => 0.0
a2billing.php|2|12396455991: [agi_accountcode] =>
a2billing.php|2|12396455991: )
a2billing.php|2|12396455991:
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:616 - get_agi_request_parameter = 3214458000 ; Local/123964559 91@from-internal-930a,2 ; 1200252738.418 ; ; s
a2billing.php|2|12396455991: file:a2billing.php - line:141 - [ANSWER CALL]
-- Local/12396455991@from-internal-930a,1 answered SIP/dire_fvw3g-b7d26620
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1438 - [CID_ENABLE - CID_CONTROL - CID:3214458000]
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1455 - QUERY = SELECT cc_callerid.cid, cc_callerid.id_cc_card, cc_callerid.activated, cc_card.credit, cc_card.tariff, cc_card.activated, cc_card.inuse, cc_card.simultaccess, cc_card.type paid, cc_card.creditlimit, cc_card.language, cc_card.username, removeinterprefix, cc_card.redial, enableexpire, UNIX_TIMESTAM P(expirationdate), expiredays, nbused, UNIX_TIMESTAMP(firstusedate), UNIX_TIMESTAMP(cc_card.creationdate), cc_card.currency, cc_card.lastname, cc_card.firstname, cc_card.email, cc_card.uipass, cc_card.id_campaign, cc_card.id, useralias FROM cc_caller id LEFT JOIN cc_card ON cc_callerid.id_cc_card=cc_card.id LEFT JOIN cc_tariffgroup ON cc_card.tariff=cc_tariffgroup.id WHER E cc_callerid.cid='3214458000'
a2billing.php|2|12396455991: RESULT :
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1769 - Requesting DTMF, CARDNUMBER_LENGTH_MAX 15
-- <Local/12396455991@from-internal-930a,2> Playing 'prepaid-enter-pin-number' (language 'en')
== Spawn extension (macro-dial, s, 10) exited non-zero on 'SIP/dire_fvw3g-b7d26620' in macro 'dial'
== Spawn extension (macro-dial, s, 10) exited non-zero on 'SIP/dire_fvw3g-b7d26620' in macro 'exten-vm'
== Spawn extension (macro-dial, s, 10) exited non-zero on 'SIP/dire_fvw3g-b7d26620'
-- Executing [h@macro-dial:1] Macro("SIP/dire_fvw3g-b7d26620", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] ResetCDR("SIP/dire_fvw3g-b7d26620", "w") in new stack
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1771 - RES DTMF : -1
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1775 - CARDNUMBER ::> -1
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1785 - PREPAID-INVALID-DIGITS
-- Playing 'prepaid-invalid-digits' (escape_digits=#) (sample_offset 0)
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1761 - PREPAID-INVALID-DIGITS
-- Executing [s@macro-hangupcall:2] NoCDR("SIP/dire_fvw3g-b7d26620", "") in new stack
-- Executing [s@macro-hangupcall:3] GotoIf("SIP/dire_fvw3g-b7d26620", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,6)
-- Executing [s@macro-hangupcall:6] GotoIf("SIP/dire_fvw3g-b7d26620", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] GotoIf("SIP/dire_fvw3g-b7d26620", "1?theend") in new stack
-- Goto (macro-hangupcall,s,11)
-- Executing [s@macro-hangupcall:11] Hangup("SIP/dire_fvw3g-b7d26620", "") in new stack
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'SIP/dire_fvw3g-b7d26620' in macro 'hangupcall'
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'SIP/dire_fvw3g-b7d26620'
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1769 - Requesting DTMF, CARDNUMBER_LENGTH_MAX 15
-- <Local/12396455991@from-internal-930a,2> Playing 'prepaid-enter-pin-number' (language 'en')
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1771 - RES DTMF : -1
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1775 - CARDNUMBER ::> -1
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1785 - PREPAID-INVALID-DIGITS
-- Playing 'prepaid-invalid-digits' (escape_digits=#) (sample_offset 0)
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1761 - PREPAID-INVALID-DIGITS
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1769 - Requesting DTMF, CARDNUMBER_LENGTH_MAX 15
-- <Local/12396455991@from-internal-930a,2> Playing 'prepaid-enter-pin-number' (language 'en')
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1771 - RES DTMF : -1
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1775 - CARDNUMBER ::> -1
a2billing.php|2|12396455991: file:Class.A2Billing.php - line:1785 - PREPAID-INVALID-DIGITS
a2billing.php|2|12396455991: file:a2billing.php - line:326 - [AUTHENTICATION FAILED (cia_res:-1)]
-- AGI Script a2billing.php completed, returning -1
-- Executing [h@from-internal:1] Macro("Local/12396455991@from-internal-930a,2", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] ResetCDR("Local/12396455991@from-internal-930a,2", "w") in new stack
-- Executing [s@macro-hangupcall:2] NoCDR("Local/12396455991@from-internal-930a,2", "") in new stack
-- Executing [s@macro-hangupcall:3] GotoIf("Local/12396455991@from-internal-930a,2", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,6)
-- Executing [s@macro-hangupcall:6] GotoIf("Local/12396455991@from-internal-930a,2", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] GotoIf("Local/12396455991@from-internal-930a,2", "1?theend") in new stack
-- Goto (macro-hangupcall,s,11)
-- Executing [s@macro-hangupcall:11] Hangup("Local/12396455991@from-internal-930a,2", "") in new stack
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'Local/12396455991@from-internal-930a,2' in macro 'hangupcal l'
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'Local/12396455991@from-internal-930a,2'
pbx*CLI>


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 13, 2008 8:50 pm 
Offline
Moderator
User avatar

Joined: Thu Jun 22, 2006 2:19 pm
Posts: 2890
Location: Devon, UK
smixon wrote:
place this in the extensions.conf file where the modification was made or does it go to the call forwarding macro?
I've very little experience of FreePBX, so you've got a better idea than I where it would be best located.
Quote:
exten _X.,n,Set(CALLERID(num)=${EXTEN})
exten => s,n(skipoutnum),GotoIf($["${pre_num}" = "AMP:A2B/"]?a2bdial:skipoutnumnormal) ; Checks for A2B custom trunk and dials it.
I was only using _X. as an example. If the existing extensions in that context are matching on s, then your additions should too, otherwise one or the other isn't going to be executed. I'm not sure that using ,n, as a priority is valid, prior to setting the priority with a literal 1. Paying close attention to the Asterisk console (with verbose 15) while you extensions reload can give valuable clues at to why your dialplan doesn't function as intended.

Added after 6 minutes:

Also I forgot to include the => in my previous reply. You need to correct your addition to read:
Code:
exten => s,n,Set(CALLERID(num)=${EXTEN})
exten => s,n(skipoutnum),GotoIf($["${pre_num}" = "AMP:A2B/"]?a2bdial:skipoutnumnormal) ; Checks for A2B custom trunk and dials it.
etc


Top
 Profile  
 
 Post subject:
PostPosted: Thu Feb 14, 2008 8:28 pm 
Offline

Joined: Tue Mar 27, 2007 5:23 am
Posts: 93
sweepy84 wrote:
Hi,

I have successfully created an outbound route to A2B and everything works perfectly fine except for one thing.

in the outbound route the dial pattern is 9|.

so it takes any number strips the 9 and sends that number. this happens with any other outbound routes dial pattern, but with the A2B dial pattern it still sends the 9 and A2B is unable to find the matching rate because there is none!

please help!


Have you tried to remove the digits from within A2Billing? I know that there is an option to remove it from there.

Added after 6 minutes:

The doc is back in... Been away and too busy to even look at our A2Billing Stuff. Anyone still having some outstanding problems that I can try to assist with?


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 27, 2008 4:29 pm 
Offline

Joined: Mon Dec 03, 2007 5:50 pm
Posts: 26
I am still getting when I dial an a2billing sip friend from Trixbox extension, all circuits are busy now.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 43 posts ]  Go to page Previous  1, 2, 3  Next
Auto Dialer Software


All times are UTC


Who is online

Users browsing this forum: No registered users and 7 guests


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:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group