Support A2Billing :

provided by Star2Billing S.L.

Support A2Billing :
It is currently Thu Mar 28, 2024 8:43 am
Predictive Dialer


All times are UTC




Post new topic Reply to topic  [ 4 posts ] 
Author Message
 Post subject: Short busy, then ring on Priority 2 dial string.
PostPosted: Fri Dec 02, 2011 4:25 pm 
Offline

Joined: Thu Jun 05, 2008 5:35 pm
Posts: 37
As far as I can tell, this is a bug within A2Billing, and not the way we're asking Asterisk to dial.

In this example, our customer has two SIP phones, and their Inbound DID is set up with two priorities, such that when line 1 is unavailable, A2Billing goes on to dial line 2. If line 1 is busy, the calling party hears a busy tone for a fraction of a second before line 2 gets dialled. If I were to re-create this dialplan in Asterisk's extensions.conf, the problem gets solved (Asterisk keeps the busy message to itself and just transparently tries the next item in the dialplan), however A2Billing's purpose is in part to ensure that dialplans do not have syntax errors, and that our technicians don't have to be vi wizards who love the Linux command line.

Just as importantly, since the "normal" method that works for 99.5% of our customers is to set things up in A2Billing, it's going to be extremely confusing when troubleshooting to find that the inbound did destination just doesn't exist. This is technically the second bug I need to report: There's no way in A2Billing to create notes about a DID to let the front-line technicians know that say, DID XXX is actually set up in Asterisk, because its dialplan is set up for something more complicated, like an IVR, a Queue, or a GotoIfTime arrangement.

We're using A2B v1.9.4 and Asterisk 1.8.6.0


Top
 Profile  
 
 Post subject: Re: Short busy, then ring on Priority 2 dial string.
PostPosted: Sat Dec 03, 2011 6:11 am 
Offline

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

Are you answering the call anywhere in the dialplan or agi-conf, if so, this may cause problems.

Joe


Top
 Profile  
 
 Post subject: Re: Short busy, then ring on Priority 2 dial string.
PostPosted: Mon Dec 05, 2011 4:01 pm 
Offline

Joined: Thu Jun 05, 2008 5:35 pm
Posts: 37
No, it's not anywhere in the dialplan. When I say putting the number in the dialplan fixes the problem, I mean that I remove it as a destination DID in A2Billing, and set it up in extensions.conf instead. I want to avoid this, because that would mean we're back to making everyone on the support desk responsible for what happens when they make a typo in one of the 1000 DIDs we have in the system.

The Asterisk CLI shows the following output when this behaviour shows up:

-- Launched AGI Script /var/lib/asterisk/agi-bin/a2billing.php
a2billing.php,2,did: file:Class.A2Billing.php - line:604 - uniqueid: - A2Billing AGI internal configuration:
a2billing.php,2,did: file:Class.A2Billing.php - line:605 - uniqueid: - Array
a2billing.php,2,did: (
a2billing.php,2,did: [dialcommand_param_call_2did] => |30|Hi
a2billing.php,2,did: [description] => for dids
a2billing.php,2,did: [asterisk_version] => 1_6
a2billing.php,2,did: [answer_call] => 0
a2billing.php,2,did: [play_audio] => 0
a2billing.php,2,did: [say_goodbye] => 0
a2billing.php,2,did: [play_menulanguage] => 0
a2billing.php,2,did: [force_language] =>
a2billing.php,2,did: [intro_prompt] =>
a2billing.php,2,did: [min_credit_2call] => 0
a2billing.php,2,did: [min_duration_2bill] => 0
a2billing.php,2,did: [notenoughcredit_cardnumber] => 0
a2billing.php,2,did: [notenoughcredit_assign_newcardnumber_cid] => 0
a2billing.php,2,did: [use_dnid] => 0
a2billing.php,2,did: [no_auth_dnid] => Array
a2billing.php,2,did: (
a2billing.php,2,did: [0] => 2400
a2billing.php,2,did: [1] => 2300
a2billing.php,2,did: )
a2billing.php,2,did:
a2billing.php,2,did: [number_try] => 1
a2billing.php,2,did: [force_callplan_id] =>
a2billing.php,2,did: [say_balance_after_auth] => 1
a2billing.php,2,did: [say_balance_after_call] => 0
a2billing.php,2,did: [say_rateinitial] => 0
a2billing.php,2,did: [say_timetocall] => 1
a2billing.php,2,did: [auto_setcallerid] => 1
a2billing.php,2,did: [force_callerid] =>
a2billing.php,2,did: [cid_sanitize] => 0
a2billing.php,2,did: [cid_enable] => 0
a2billing.php,2,did: [cid_askpincode_ifnot_callerid] => 1
a2billing.php,2,did: [failover_lc_prefix] => 0
a2billing.php,2,did: [cid_auto_assign_card_to_cid] => 1
a2billing.php,2,did: [callerid_authentication_over_cardnumber] => 0
a2billing.php,2,did: [sip_iax_friends] => 0
a2billing.php,2,did: [sip_iax_pstn_direct_call_prefix] => 555
a2billing.php,2,did: [sip_iax_pstn_direct_call] => 0
a2billing.php,2,did: [ivr_voucher] => 0
a2billing.php,2,did: [ivr_voucher_prefix] => 8
a2billing.php,2,did: [jump_voucher_if_min_credit] => 0
a2billing.php,2,did: [dialcommand_param] => |35|HRr
a2billing.php,2,did: [dialcommand_param_sipiax_friend] => |30|Hi
a2billing.php,2,did: [switchdialcommand] => 0
a2billing.php,2,did: [failover_recursive_limit] => 2
a2billing.php,2,did: [maxtime_tocall_negatif_free_route] => 5400
a2billing.php,2,did: [send_reminder] => 0
a2billing.php,2,did: [record_call] => 0
a2billing.php,2,did: [monitor_formatfile] => gsm
a2billing.php,2,did: [agi_force_currency] =>
a2billing.php,2,did: [currency_association] => Array
a2billing.php,2,did: (
a2billing.php,2,did: [0] => usd:dollars
a2billing.php,2,did: [1] => mxn:pesos
a2billing.php,2,did: [2] => eur:euros
a2billing.php,2,did: [3] => all:credit
a2billing.php,2,did: )
a2billing.php,2,did:
a2billing.php,2,did: [local_dialing_addcountryprefix] => 0
a2billing.php,2,did: [max_call_call_2_did] => 3600
a2billing.php,2,did: [file_conf_enter_destination] => prepaid-enter-dest
a2billing.php,2,did: [conf_order_menulang] => en:fr:es
a2billing.php,2,did: [callback_bill_1stleg_ifcall_notconnected] => 1
a2billing.php,2,did: [international_prefixes] => Array
a2billing.php,2,did: (
a2billing.php,2,did: [0] => 011
a2billing.php,2,did: [1] => 00
a2billing.php,2,did: )
a2billing.php,2,did:
a2billing.php,2,did: [extracharge_did] => Array
a2billing.php,2,did: (
a2billing.php,2,did: [0] => 1800
a2billing.php,2,did: [1] => 1900
a2billing.php,2,did: )
a2billing.php,2,did:
a2billing.php,2,did: [extracharge_fee] => Array
a2billing.php,2,did: (
a2billing.php,2,did: [0] => 0
a2billing.php,2,did: [1] => 0
a2billing.php,2,did: )
a2billing.php,2,did:
a2billing.php,2,did: [extracharge_buyfee] => Array
a2billing.php,2,did: (
a2billing.php,2,did: [0] => 0
a2billing.php,2,did: [1] => 0
a2billing.php,2,did: )
a2billing.php,2,did:
a2billing.php,2,did: [maxtime_tounlimited_calls] => 5400
a2billing.php,2,did: [maxtime_tofree_calls] => 5400
a2billing.php,2,did: [callplan_deck_minute_threshold] =>
a2billing.php,2,did: [disable_announcement_seconds] => 0
a2billing.php,2,did: [verbosity_level] => 4
a2billing.php,2,did: [logging_level] => 3
a2billing.php,2,did: [dial_balance_reservation] => 0
a2billing.php,2,did: [callerid_update] => 0
a2billing.php,2,did: [cid_auto_create_card] => 0
a2billing.php,2,did: [cid_auto_create_card_len] => 10
a2billing.php,2,did: [cid_auto_create_card_typepaid] => PREPAID
a2billing.php,2,did: [cid_auto_create_card_credit] => 50
a2billing.php,2,did: [cid_auto_create_card_credit_limit] => 0
a2billing.php,2,did: [cid_auto_create_card_tariffgroup] => 1
a2billing.php,2,did: [busy_timeout] => 1
a2billing.php,2,did: [callback_reduce_balance] => 1
a2billing.php,2,did: [ivr_enable_locking_option] => 0
a2billing.php,2,did: [ivr_enable_account_information] => 0
a2billing.php,2,did: [ivr_enable_ivr_speeddial] => 0
a2billing.php,2,did: [callback_beep_to_enter_destination] => 0
a2billing.php,2,did: [logger_enable] => 1
a2billing.php,2,did: [log_file] => /var/log/a2billing/a2billing.log
a2billing.php,2,did: [dialcommand_param_call_2did ] => |30|HL(3600000:61000:30000)
a2billing.php,2,did: [currency_association_internal] => Array
a2billing.php,2,did: (
a2billing.php,2,did: [usd] => dollars
a2billing.php,2,did: [mxn] => pesos
a2billing.php,2,did: [eur] => euros
a2billing.php,2,did: [all] => credit
a2billing.php,2,did: )
a2billing.php,2,did:
a2billing.php,2,did: [file_conf_enter_menulang] => prepaid-menulang
a2billing.php,2,did: [ivr_voucher_prefixe] => 8
a2billing.php,2,did: [cheat_on_announcement_time] => 0
a2billing.php,2,did: )
a2billing.php,2,did:
a2billing.php,2,did: file:a2billing.php - line:106 - uniqueid: - IDCONFIG : 2
a2billing.php,2,did: file:a2billing.php - line:107 - uniqueid: - MODE : did
a2billing.php,2,did: file:a2billing.php - line:124 - uniqueid: - AGI Request:
a2billing.php,2,did: Array
a2billing.php,2,did: (
a2billing.php,2,did: [agi_request] => a2billing.php
a2billing.php,2,did: [agi_channel] => DAHDI/i1/604XXXXXXX-10a7
a2billing.php,2,did: [agi_language] => en
a2billing.php,2,did: [agi_type] => DAHDI
a2billing.php,2,did: [agi_uniqueid] => 1323100039.11747
a2billing.php,2,did: [agi_version] => 1.8.6.0
a2billing.php,2,did: [agi_callerid] => 604XXXXXXX
a2billing.php,2,did: [agi_calleridname] => unknown
a2billing.php,2,did: [agi_callingpres] => 1
a2billing.php,2,did: [agi_callingani2] => 0
a2billing.php,2,did: [agi_callington] => 33
a2billing.php,2,did: [agi_callingtns] => 0
a2billing.php,2,did: [agi_dnid] => 604XXXXXXX
a2billing.php,2,did: [agi_rdnis] => unknown
a2billing.php,2,did: [agi_context] => local_dids_match_2
a2billing.php,2,did: [agi_extension] => 604XXXXXXX
a2billing.php,2,did: [agi_priority] => 1
a2billing.php,2,did: [agi_enhanced] => 0.0
a2billing.php,2,did: [agi_accountcode] =>
a2billing.php,2,did: [agi_threadid] => -1260323984
a2billing.php,2,did: [agi_arg_1] => 2
a2billing.php,2,did: [agi_arg_2] => did
a2billing.php,2,did: )
a2billing.php,2,did:
a2billing.php,2,did: file:a2billing.php - line:126 - uniqueid: - [INFO : A2Billing - Version 1.9.4 (Cuprum)]
a2billing.php,2,did: file:Class.A2Billing.php - line:718 - uniqueid:1323100039.11747 - get_agi_request_parameter = 604XXXXXXX ; DAHDI/i1/604XXXXXXX-10a7 ; 1323100039.11747 ; ; 604XXXXXXX
a2billing.php,2,did: file:a2billing.php - line:635 - uniqueid:1323100039.11747 - [NO ANSWER CALL]
a2billing.php,2,did: file:a2billing.php - line:647 - uniqueid:1323100039.11747 - [DID CALL - [CallerID=604XXXXXXX]:[DID=604XXXXXXX]
a2billing.php,2,did: file:a2billing.php - line:662 - uniqueid:1323100039.11747 - SELECT cc_did.id, cc_did_destination.id, billingtype, tariff, destination, voip_call, username, useralias, connection_charge, selling_rate, did, aleg_carrier_connect_charge, aleg_carrier_cost_min, aleg_retail_connect_charge, aleg_retail_cost_min, aleg_carrier_initblock, aleg_carrier_increment, aleg_retail_initblock, aleg_retail_increment FROM cc_did, cc_did_destination, cc_card WHERE id_cc_did=cc_did.id and cc_card.status=1 and cc_card.id=id_cc_card and cc_did_destination.activated=1 and cc_did.activated=1 and did='604XXXXXXX' AND cc_did.startingdate<= CURRENT_TIMESTAMP AND (cc_did.expirationdate > CURRENT_TIMESTAMP OR cc_did.expirationdate IS NULL AND cc_did_destination.validated=1 OR cc_did.expirationdate = '0000-00-00 00:00:00') ORDER BY priority ASC
a2billing.php,2,did: file:a2billing.php - line:664 - uniqueid:1323100039.11747 - Array
a2billing.php,2,did: file:Class.A2Billing.php - line:1251 - uniqueid:1323100039.11747 - [A2Billing] DID call friend: FOLLOWME=1 (cardnumber:userid|destination:SIP/username|tariff:1)
a2billing.php,2,did:
a2billing.php,2,did: file:Class.A2Billing.php - line:2721 - uniqueid:1323100039.11747 - - Account code ::> userid
a2billing.php,2,did: file:Class.A2Billing.php - line:2738 - uniqueid:1323100039.11747 - - Retrieve account info SQL ::> SELECT credit, tariff, activated, inuse, simultaccess, typepaid, creditlimit, language, removeinterprefix, redial, enableexpire, UNIX_TIMESTAMP(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, status, voicemail_permitted, voicemail_activated, cc_card.restriction, cc_country.countryprefix FROM cc_card LEFT JOIN cc_tariffgroup ON tariff=cc_tariffgroup.id LEFT JOIN cc_country ON cc_card.country=cc_country.countrycode WHERE username='userid'
a2billing.php,2,did: file:Class.A2Billing.php - line:2807 - uniqueid:1323100039.11747 - [SET CHANNEL(language) en]
a2billing.php,2,did: file:Class.A2Billing.php - line:2811 - uniqueid:1323100039.11747 - [credit=100 :: tariff=1 :: status=1 :: isused=0 :: simultaccess=1 :: typepaid=1 :: creditlimit=100 :: language=en]
a2billing.php,2,did: file:Class.A2Billing.php - line:750 - uniqueid:1323100039.11747 - [CARD STATUS UPDATE]
a2billing.php,2,did: file:Class.A2Billing.php - line:759 - uniqueid:1323100039.11747 - [QUERY USING CARD UPDATE::> UPDATE cc_card SET inuse=inuse+1, credit=credit-0 WHERE username='userid']
a2billing.php,2,did: file:Class.A2Billing.php - line:1287 - uniqueid:1323100039.11747 - [A2Billing] DID call friend: Dialing 'SIP/username|30|Hi' Friend.
a2billing.php,2,did:
-- AGI Script Executing Application: (DIAL) Options: (SIP/username,30,Hi)
== Using SIP RTP CoS mark 5
-- Called SIP/username
-- Got SIP response 486 "Busy Here" back from IPAddress:5060
-- SIP/username-00001d3d is busy
== Everyone is busy/congested at this time (1:1/0/0)
a2billing.php,2,did: file:Class.A2Billing.php - line:1292 - uniqueid:1323100039.11747 - DIAL SIP/username|30|Hi
a2billing.php,2,did: file:Class.A2Billing.php - line:1304 - uniqueid:1323100039.11747 - [SIP/username Friend][followme=1]:[ANSWEREDTIME=-DIALSTATUS=BUSY]
-- AGI Script Executing Application: (Busy) Options: (1)
a2billing.php,2,did: file:Class.A2Billing.php - line:1251 - uniqueid:1323100039.11747 - [A2Billing] DID call friend: FOLLOWME=2 (cardnumber:userid|destination:SIP/username2|tariff:1)
a2billing.php,2,did:
a2billing.php,2,did: file:Class.A2Billing.php - line:750 - uniqueid:1323100039.11747 - [CARD STATUS UPDATE]
a2billing.php,2,did: file:Class.A2Billing.php - line:759 - uniqueid:1323100039.11747 - [QUERY USING CARD UPDATE::> UPDATE cc_card SET inuse=inuse-1, credit=credit+0 WHERE username='userid']
a2billing.php,2,did: file:Class.A2Billing.php - line:2721 - uniqueid:1323100039.11747 - - Account code ::> userid
a2billing.php,2,did: file:Class.A2Billing.php - line:2738 - uniqueid:1323100039.11747 - - Retrieve account info SQL ::> SELECT credit, tariff, activated, inuse, simultaccess, typepaid, creditlimit, language, removeinterprefix, redial, enableexpire, UNIX_TIMESTAMP(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, status, voicemail_permitted, voicemail_activated, cc_card.restriction, cc_country.countryprefix FROM cc_card LEFT JOIN cc_tariffgroup ON tariff=cc_tariffgroup.id LEFT JOIN cc_country ON cc_card.country=cc_country.countrycode WHERE username='userid'
a2billing.php,2,did: file:Class.A2Billing.php - line:2807 - uniqueid:1323100039.11747 - [SET CHANNEL(language) en]
a2billing.php,2,did: file:Class.A2Billing.php - line:2811 - uniqueid:1323100039.11747 - [credit=100 :: tariff=1 :: status=1 :: isused=0 :: simultaccess=1 :: typepaid=1 :: creditlimit=100 :: language=en]
a2billing.php,2,did: file:Class.A2Billing.php - line:750 - uniqueid:1323100039.11747 - [CARD STATUS UPDATE]
a2billing.php,2,did: file:Class.A2Billing.php - line:759 - uniqueid:1323100039.11747 - [QUERY USING CARD UPDATE::> UPDATE cc_card SET inuse=inuse+1, credit=credit-0 WHERE username='userid']
a2billing.php,2,did: file:Class.A2Billing.php - line:1287 - uniqueid:1323100039.11747 - [A2Billing] DID call friend: Dialing 'SIP/username2|30|Hi' Friend.
a2billing.php,2,did:
-- AGI Script Executing Application: (DIAL) Options: (SIP/username2,30,Hi)
== Using SIP RTP CoS mark 5


Top
 Profile  
 
 Post subject: Re: Short busy, then ring on Priority 2 dial string.
PostPosted: Tue Dec 06, 2011 9:19 pm 
Offline

Joined: Thu Jun 05, 2008 5:35 pm
Posts: 37
I found the problem. This is introduced by the default value for the busy_timeout configuration variable, which is 1 second. Setting this value to 0 ensures that A2Billing does not give 1 second of busy signal noise to the calling party while the program is moving on to priority 2 for the destination DID.

I would like to recommend to the A2Billing development team that the busy_timeout value be set to 0 as the default, instead of 1. There is little to no reason to let the caller know that a line is busy when the receiver's dialplan is configured to try something else on that condition.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 
Auto Dialer Software


All times are UTC


Who is online

Users browsing this forum: No registered users and 10 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