asterisk2billing.org http://forum.asterisk2billing.org/ |
|
Prepaid calling card http://forum.asterisk2billing.org/viewtopic.php?f=21&t=5153 |
Page 1 of 1 |
Author: | michofr [ Tue Apr 14, 2009 11:27 am ] |
Post subject: | Prepaid calling card |
Dear All, I'm trying to use a2billing for prepaid calling cards...The system should check if the caller number is on the system else it will ask to enter a PIN number... I have the following config: a2billing.conf: sip.conf: [sip_proxy_39] type=peer context=a2billing-did host=81.201.82.39 allow=alaw allow=ulaw allow=g729 dtmfmode = RFC2833 extensions.conf: [a2billing-did] exten => _X.,1,DeadAGI(a2billing.php|6|did) exten => _X.,n,Hangup [agi-conf6] ; the debug level ; 0=none, 1=low, 2=normal, 3=all debug = 3 ; Asterisk Version Information ; 1_1,1_2,1_4 By Default it will take 1_2 or higher asterisk_version = 1_4 ; Manage the answer on the call answer_call = NO ; Play audio - this will disable all stream file but not the Get Data ; for wholesale ensure that the authentication works and than number_try = 1 play_audio = NO ; play the goodbye message when the user has finished. say_goodbye = NO ; enable the menu to choose the language ; press 1 for English, pulsa 2 para el español, Pressez 3 pour Français play_menulanguage = NO ; force the use of a language, if you dont want to use it leave the option empty ; Values : ES, EN, FR, etc... (according to the audio you have installed) force_language = ; Introduction prompt : to specify an additional prompt to play at the beginning of the application intro_prompt = ; Minimum amount of credit to use the application min_credit_2call = 0 ; this is the minimum duration in seconds of a call in order to be billed ; any call with a length less than min_duration_2bill will have a 0 cost ; useful not to charge callers for system errors when a call was answered but it actually didn't connect min_duration_2bill = 0 ; if user doesn't have enough credit to call a destination, prompt him to enter another cardnumber notenoughcredit_cardnumber = YES ; if notenoughcredit_cardnumber = YES then assign the CallerID to the new cardnumber notenoughcredit_assign_newcardnumber_cid = YES ; if YES it will use the DNID and try to dial out, without asking for the phonenumber to call ; value : YES, NO use_dnid = NO ; list the dnid on which you want to avoid the use of the previous option "use_dnid" no_auth_dnid = 2400,2300 ; number of times the user can dial different number number_try = 1 ; this will force to select a specific call plan by the Rate Engine force_callplan_id = ; Play the balance to the user after the authentication (values : yes - no) say_balance_after_auth = yes ; Play the balance to the user after the call (values : yes - no) say_balance_after_call = NO ; Play the initial cost of the route (values : yes - no) say_rateinitial = NO ; Play the amount of time that the user can call (values : yes - no) say_timetocall = NO ; enable the setup of the callerID number before the outbound is made, by default the user callerID value will be use auto_setcallerid = YES ; If auto_setcallerid is enabled, the value of force_callerid will be set as CallerID force_callerid = ; If force_callerid is not set, then the following option ensures that CID is set to one of the card's configured caller IDs or blank if none available. ; NO - disable this feature, caller ID can be anything. ; CID - Caller ID must be one of the customers caller IDs ; DID - Caller ID must be one of the customers DID nos. ; BOTH - Caller ID must be one of the above two items. cid_sanitize = NO ; enable the callerid authentication ; if this option is active the CC system will check the CID of caller cid_enable = NO ; if the CID does not exist, then the caller will be prompt to enter his cardnumber #Changed By AJ cid_askpincode_ifnot_callerid = YES #cid_askpincode_ifnot_callerid = NO ; if the callerID authentication is enable and the authentication fails then the user will be prompt to enter his cardnumber ; this option will bound the cardnumber entered to the current callerID so that next call will be directly authenticate cid_auto_assign_card_to_cid = YES ; if the callerID is captured on a2billing, this option will create automatically a new card and add the callerID to it ; set the length of the card that will be auto create (ie, 10) cid_auto_create_card_len = 10 ; If cid_auto_create_card has been set to YES, the following options will define with which configuration we will create the card ; ; billing type of the new card ; ( value : POSTPAY or PREPAY) cid_auto_create_card_typepaid = POSTPAY ; amount of credit of the new card cid_auto_create_card_credit = 0 ; if postpay, define the credit limit for the card cid_auto_create_card_credit_limit = 1000 ; the tariffgroup to use for the new card (this is the ID that you can find on the admin web interface) cid_auto_create_card_tariffgroup = 6 ; to check callerID over the cardnumber authentication (to guard against spoofing) callerid_authentication_over_cardnumber = NO ; enable the option to call sip/iax friend for free (values : YES - NO) sip_iax_friends = NO ; if SIP_IAX_FRIENDS is active, you can define a prefix for the dialed digits to call a pstn number ; values : number sip_iax_pstn_direct_call_prefix = 555 ; this will enable a prompt to enter your destination number. ; if number start by sip_iax_pstn_direct_call_prefix we do directly a sip iax call, if not we do a normal call sip_iax_pstn_direct_call = YES ; enable the option to refill card with voucher in IVR (values : YES - NO) ivr_voucher = NO ; if ivr_voucher is active, you can define a prefix for the voucher number to refill your card ; values : number - don't forget to change prepaid-refill_card_with_voucher audio accordingly ivr_voucher_prefix = 8 ; When the user credit are below the minimum credit to call min_credit ; jump directly to the voucher IVR menu (values: YES - NO) jump_voucher_if_min_credit = NO ; Extracharge DIDs, multiple numbers and fees must be separated by comma ; extracharge_did = 1800XXXXXXX,1888XXXXXXX extracharge_did = ;extracharge_fee = 0.02,0.03 extracharge_fee = ;extracharge_buyfee = 0.015,0.025 extracharge_buyfee = ; List the prefixes that will be stripped off if the call plan requires it international_prefixes = 011,00,09 ; More information about the Dial : http://voip-info.org/wiki-Asterisk+cmd+dial ; 30 : The timeout parameter is optional. If not specifed, the Dial command will wait indefinitely, exiting only when the originating channel hangs up, or all the dialed channels return a busy or error condition. Otherwise it specifies a maximum time, in seconds, that the Dial command is to wait for a channel to answer. ; H: Allow the caller to hang up by dialing * ; r: Generate a ringing tone for the calling party ; g: When the called party hangs up, exit to execute more commands in the current context. (new in 1.4) ; i: Asterisk will ignore any forwarding (302 Redirect) requests received. Essential for DID usage to prevent fraud. (new in 1.4) Useful if you are ringing a group of people and one person has set their phone to forwarded direct to voicemail on their cell or something which normally prevents any of the other phones from ringing. ; R: Indicate ringing to the calling party when the called party indicates ringing, pass no audio until answered. ; m: Provide Music on Hold to the calling party until the called channel answers. ; L(x[:y][:z]): Limit the call to 'x' ms, warning when 'y' ms are left, repeated every 'z' ms) ; %timeout% tag is replaced by the calculated timeout according the credit & destination rate! dialcommand_param = "|60|HRgL(%timeout%:61000:30000)" ; by default (3600000 = 1HOUR MAX CALL) dialcommand_param_sipiax_friend = "|60|HRgiL(3600000:61000:30000)" ; Define the order to make the outbound call ; YES -> SIP/dialedphonenumber@gateway_ip - NO SIP/gateway_ip/dialedphonenumber ; Both should work exactly the same but i experimented one case when gateway was supporting dialedphonenumber@gateway_ip ; So in case of trouble, try it out switchdialcommand = NO ; failover recursive search - define how many time we want to authorize the research of the failover trunk when a call fails (value : 0 - 20) failover_recursive_limit = 2 ; For free calls, limit the duration: amount in seconds maxtime_tocall_negatif_free_route = 5400 ; Send a reminder email to the user when they are under min_credit_2call send_reminder = NO ; enable to monitor the call (to record all the conversations) ; value : YES - NO record_call = NO ; format of the recorded monitor file monitor_formatfile = gsm ; Force to play the balance to the caller in a predefined currency, to use the currency set for by the customer leave this field empty agi_force_currency = ; CURRENCY SECTION ; Define all the audio (without file extensions) that you want to play according to currency (use , to separate, ie "usd:prepaid-dollar,mxn:pesos,eur:Euro,all:credit") currency_association = usd:dollars,mxn:pesos,eur:euros,all:credit ; Please enter the file name you want to play when we prompt the calling party to enter the destination number ; file_conf_enter_destination = prepaid-enter-number-u-calling-1-or-011 ;file_conf_enter_destination = prepaid-enter-dest ; Please enter the file name you want to play when we prompt the calling party to choose the prefered language ; file_conf_enter_menulang = prepaid-menulang file_conf_enter_menulang = prepaid-menulang2 ; Define if you want to bill the 1st leg on callback even if the call is not connected to the destination callback_bill_1stleg_ifcall_notconnected = YES The issue is when i dial the did number that forward the call to asterisk, I got cll declined...Please find below the log: AGI Script a2billing.php completed, returning 0 -- Executing [1905964541@a2billing-did:1] DeadAGI("SIP/voxbone.com-b78ebef8", "a2billing.php|6|did") in new stack [Apr 14 12:03:10] WARNING[8220]: res_agi.c:2129 deadagi_exec: Running DeadAGI on a live channel will cause problems, please use AGI -- Launched AGI Script /var/lib/asterisk/agi-bin/a2billing.php a2billing.php|6|did: A2Billing AGI internal configuration: a2billing.php|6|did: Array a2billing.php|6|did: ( a2billing.php|6|did: [debug] => 3 a2billing.php|6|did: [asterisk_version] => 1_4 a2billing.php|6|did: [answer_call] => a2billing.php|6|did: [play_audio] => a2billing.php|6|did: [say_goodbye] => a2billing.php|6|did: [play_menulanguage] => a2billing.php|6|did: [force_language] => a2billing.php|6|did: [intro_prompt] => a2billing.php|6|did: [min_credit_2call] => 0 a2billing.php|6|did: [min_duration_2bill] => 0 a2billing.php|6|did: [notenoughcredit_cardnumber] => 1 a2billing.php|6|did: [notenoughcredit_assign_newcardnumber_cid] => 1 a2billing.php|6|did: [use_dnid] => a2billing.php|6|did: [no_auth_dnid] => Array a2billing.php|6|did: ( a2billing.php|6|did: [0] => 2400 a2billing.php|6|did: [1] => 2300 a2billing.php|6|did: ) a2billing.php|6|did: a2billing.php|6|did: [number_try] => 1 a2billing.php|6|did: [force_callplan_id] => a2billing.php|6|did: [say_balance_after_auth] => 1 a2billing.php|6|did: [say_balance_after_call] => a2billing.php|6|did: [say_rateinitial] => a2billing.php|6|did: [say_timetocall] => a2billing.php|6|did: [auto_setcallerid] => 1 a2billing.php|6|did: [force_callerid] => a2billing.php|6|did: [cid_sanitize] => a2billing.php|6|did: [cid_enable] => a2billing.php|6|did: [cid_askpincode_ifnot_callerid] => 1 a2billing.php|6|did: [#cid_askpincode_ifnot_callerid] => a2billing.php|6|did: [cid_auto_assign_card_to_cid] => 1 a2billing.php|6|did: [cid_auto_create_card_len] => 10 a2billing.php|6|did: [cid_auto_create_card_typepaid] => POSTPAY a2billing.php|6|did: [cid_auto_create_card_credit] => 0 a2billing.php|6|did: [cid_auto_create_card_credit_limit] => 1000 a2billing.php|6|did: [cid_auto_create_card_tariffgroup] => 6 a2billing.php|6|did: [callerid_authentication_over_cardnumber] => a2billing.php|6|did: [sip_iax_friends] => a2billing.php|6|did: [sip_iax_pstn_direct_call_prefix] => 555 a2billing.php|6|did: [sip_iax_pstn_direct_call] => 1 a2billing.php|6|did: [ivr_voucher] => a2billing.php|6|did: [ivr_voucher_prefix] => 8 a2billing.php|6|did: [jump_voucher_if_min_credit] => a2billing.php|6|did: [extracharge_did] => Array a2billing.php|6|did: ( a2billing.php|6|did: [0] => a2billing.php|6|did: ) a2billing.php|6|did: a2billing.php|6|did: [extracharge_fee] => Array a2billing.php|6|did: ( a2billing.php|6|did: [0] => a2billing.php|6|did: ) a2billing.php|6|did: a2billing.php|6|did: [extracharge_buyfee] => Array a2billing.php|6|did: ( a2billing.php|6|did: [0] => a2billing.php|6|did: ) a2billing.php|6|did: a2billing.php|6|did: [international_prefixes] => Array a2billing.php|6|did: ( a2billing.php|6|did: [0] => 011 a2billing.php|6|did: [1] => 00 a2billing.php|6|did: [2] => 09 a2billing.php|6|did: ) a2billing.php|6|did: a2billing.php|6|did: [dialcommand_param] => |60|HRgL(%timeout%:61000:30000) a2billing.php|6|did: [dialcommand_param_sipiax_friend] => |60|HRgiL(3600000:61000:30000) a2billing.php|6|did: [switchdialcommand] => a2billing.php|6|did: [failover_recursive_limit] => 2 a2billing.php|6|did: [maxtime_tocall_negatif_free_route] => 5400 a2billing.php|6|did: [send_reminder] => a2billing.php|6|did: [record_call] => a2billing.php|6|did: [monitor_formatfile] => gsm a2billing.php|6|did: [agi_force_currency] => a2billing.php|6|did: [currency_association] => Array a2billing.php|6|did: ( a2billing.php|6|did: [0] => usd:dollars a2billing.php|6|did: [1] => mxn:pesos a2billing.php|6|did: [2] => eur:euros a2billing.php|6|did: [3] => all:credit a2billing.php|6|did: ) a2billing.php|6|did: a2billing.php|6|did: [file_conf_enter_menulang] => prepaid-menulang2 a2billing.php|6|did: [callback_bill_1stleg_ifcall_notconnected] => 1 a2billing.php|6|did: [logger_enable] => 1 a2billing.php|6|did: [log_file] => /tmp/a2billing.log a2billing.php|6|did: [currency_association_internal] => Array a2billing.php|6|did: ( a2billing.php|6|did: [usd] => dollars a2billing.php|6|did: [mxn] => pesos a2billing.php|6|did: [eur] => euros a2billing.php|6|did: [all] => credit a2billing.php|6|did: ) a2billing.php|6|did: a2billing.php|6|did: [file_conf_enter_destination] => prepaid-enter-number-u-calling-1-or-011 a2billing.php|6|did: [ivr_voucher_prefixe] => 8 a2billing.php|6|did: ) a2billing.php|6|did: a2billing.php|6|did: file:a2billing.php - line:78 - IDCONFIG : 6 a2billing.php|6|did: file:a2billing.php - line:79 - MODE : did a2billing.php|6|did: file:a2billing.php - line:91 - AGI Request: a2billing.php|6|did: file:a2billing.php - line:92 - Array a2billing.php|6|did: ( a2billing.php|6|did: [agi_request] => a2billing.php a2billing.php|6|did: [agi_channel] => SIP/voxbone.com-b78ebef8 a2billing.php|6|did: [agi_language] => en a2billing.php|6|did: [agi_type] => SIP a2billing.php|6|did: [agi_uniqueid] => 1239706990.370482 a2billing.php|6|did: [agi_callerid] => 14455522562 a2billing.php|6|did: [agi_calleridname] => 14455522562 a2billing.php|6|did: [agi_callingpres] => 0 a2billing.php|6|did: [agi_callingani2] => 0 a2billing.php|6|did: [agi_callington] => 0 a2billing.php|6|did: [agi_callingtns] => 0 a2billing.php|6|did: [agi_dnid] => 1905964541 a2billing.php|6|did: [agi_rdnis] => unknown a2billing.php|6|did: [agi_context] => a2billing-did a2billing.php|6|did: [agi_extension] => 1905964541 a2billing.php|6|did: [agi_priority] => 1 a2billing.php|6|did: [agi_enhanced] => 0.0 a2billing.php|6|did: [agi_accountcode] => a2billing.php|6|did: ) a2billing.php|6|did: a2billing.php|6|did: file:Class.A2Billing.php - line:621 - get_agi_request_parameter = 14455522562 ; SIP/voxbone.com-b78ebef8 ; 1239706990.370482 ; ; 1905964541 a2billing.php|6|did: file:a2billing.php - line:335 - [NO ANSWER CALL] a2billing.php|6|did: file:a2billing.php - line:347 - [DID CALL - [CallerID=14455522562]:[DID=1905964541] a2billing.php|6|did: file:a2billing.php - line:359 - SELECT cc_did.id, cc_did_destination.id, billingtype, tariff, destination, voip_call, username FROM cc_did, cc_did_destination, cc_card WHERE id_cc_did=cc_did.id and cc_card.id=id_cc_card and cc_did_destination.activated=1 and cc_did.activated=1 and did='1905964541' AND cc_did.startingdate<= CURRENT_TIMESTAMP AND (cc_did.expirationdate > CURRENT_TIMESTAMP OR cc_did.expirationdate IS NULL OR cc_did.expirationdate = '0000-00-00 00:00:00') ORDER BY priority ASC a2billing.php|6|did: file:a2billing.php - line:361 - -- AGI Script a2billing.php completed, returning 0 Can someone help me to find the issue? |
Page 1 of 1 | All times are UTC |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |