Support A2Billing :

provided by Star2Billing S.L.

Support A2Billing :
It is currently Sun Sep 20, 2020 8:40 am
Auto Dialer Software

All times are UTC

Post new topic Reply to topic  [ 5 posts ] 
Author Message
 Post subject: Channel 'SIP/92310469-b7709b10' sent into invalid extension
PostPosted: Sat Jan 24, 2009 7:57 pm 

Joined: Sat Jan 24, 2009 7:45 pm
Posts: 2
Hello a2billing users! (Glad to be here.)

I have an Elastix installation, and I am working on configuring a2billing for incoming billing. Whenever I try to call the Test DID, there is nothing at the other end, and this appears in the log:

Channel 'SIP/92310469-b7709b10' sent into invalid extension '12485222311' in context 'custom-a2billing', but no invalid handler

I have spent a good 16 hours searching forums and trying remedys to no avail. If I set the incoming route to an IVR, it answers, but if I set it to my custom destination (custom-a2billing,${EXTEN},1)

If you guys could shed some light on the problem, I would be very appreciative.

Here is some information:

; config file for the A2Billing Callingcard platform

; Global Database Setup - select the database type and authentication as required.

hostname = localhost
port = 5432
user = a2billinguser
password = a2billing
dbname = mya2billing
;dbtype = postgres
dbtype = mysql

; len_cardnumber is removed
; interval for the length of the cardnumber (number of digits), minimum lenght is 4
; ie: 10-15 (cardnumber authorised 10, 11, 12, 13, 14, 15) ; 10,12,14 (cardnumber authorised 10, 12, 14)
interval_len_cardnumber = 10-15

; Alias-Card length
len_aliasnumber = 15

; Voucher length
len_voucher = 15

;base currency define the default currency that you want to use to setup your system (see the currency table to know the currency code)
base_currency = usd

; filename of the image that will be display at the top of the invoice (if not defined no image will appear ; path to place the image templates/default/images/)
; the type of file have to be a jpeg/jpg
invoice_image = asterisk01.jpg

; DID Billing - amount of day before the end of the monthly reservation to bill the customer to for the DID use
; if the user dont have enough credit he will get an email asking him to refill
didbilling_daytopay = 5

;webiste administrator email address
admin_email = [email protected]

manager_host = localhost
manager_username = a2billinguser
manager_secret = a2billing

; When web call-back is enabled this is the context to sent the call.
context_callback = a2billing-callback

; this is the Extension to redirect the call when the web callback is returned
extension = 1000

; this is the number of seconds to wait before initiating the call back.
sec_wait_before_callback = 10

;Number of seconds before the call-back can be re-initiated from the web page
; to prevent repeated and unwanted calls.
sec_avoid_repeate = 30

; if the callback doesnt succeed within the value below, then the call is deemed to have failed.
timeout = 20

; if we want to manage the answer on the call
answer_call = yes

; number of calls an agent will do when the call button is clicked
nb_predictive_call = 10

; Number of days to wait before the number becomes available to call again.
nb_day_wait_before_retry = 1

; The context to redirect the call for the predictive dialer
context_preditctivedialer = a2billing-predictivedialer

; When a call is made we need to limit the call duration : amount in seconds
predictivedialer_maxtime_tocall = 5400

; set the callerID for the predictive dialer and call-back
callerid = 123456

; ID Call Plan to use when you use the all-callback mode, check the ID in the "list Call Plan" - WebUI
all_callback_tariff = 1

; Define the group of servers that are going to be used by the callback
id_server_group = 1

; Audio intro message when the callback is initiate
callback_audio_intro = prepaid-callback_intro


; url of the signup page to show up on the sign in page (if empty no link will show up)
signup_page_url =

;Enable or disable the payment methods; yes for multi-payment or no for single payment method option
paymentmethod = no

;Enable or disable the page which allow customer to modify its personal information
personalinfo = no

; Enable display of the payment interface - yes or no
customerinfo = yes

; Enable display of the sip/iax info - yes or no
sipiaxinfo = no

; Enable the Call history - yes or no
cdr = yes

; Enable invoices - yes or no
invoice = yes

; Enable the voucher screen - yes or no
voucher = yes

; Enable the paypal payment buttons - yes or no
paypal = yes

; Allow Speed Dial capabilities - yes or no
speeddial = yes

; Enable the DID (Direct Inwards Dialling) interface - yes or no
did = yes

; Show the ratecards - yes or no
ratecard = yes

; Offer simulator option on the customer interface - yes or no
simulator = yes

; Enable the callback option on the customer interface - yes or no
callback = no

; Enable the predictivedialer option on the customer interface - yes or no
predictivedialer = no

; Let users use SIP/IAX Webphone (Options : yes/no)
webphone = yes

;IP address or domain name of asterisk server that would be used by the web-phone
webphoneserver = localhost

; Let the users add new callerid
callerid = no

; Let the user change the webui password
password = yes

; The total number of callerIDs for CLI Recognition that can be add by the customer
limit_callerid = 5

; Email address to send the notification and error report - new DIDs assigned will also be emailed.
error_email = [email protected]

;SIP & IAX client configuration information.

;Trunk Name to show in sip/iax info
sip_iax_info_trunkname = call-labs

;Allowed Codec, ulaw, gsm, g729
sip_iax_info_allowcodec = g729

;host information
sip_iax_info_host =

;IAX Additional Parameters
iax_additional_parameters = "canreinvite = no"

;SIP Additional Parameters
sip_additional_parameters = "trustrpid = yes | sendrpid = yes | canreinvite = no"

enable = yes
; eg, http://localhost - should not be empty for productive servers
http_server = ""
; eg, https://localhost - Enter here your Secure Server Address, should not be empty for productive servers
https_server = ""
; Enter your Domain Name or IP Address, eg,
http_cookie_domain =
; Enter your Secure server Domain Name or IP Address, eg,
https_cookie_domain =
; Enter the Physical path of your Application on your server
http_cookie_path = "/A2BCustomer_UI/"
; Enter the Physical path of your Application on your Secure Server
https_cookie_path = "/A2BCustomer_UI/"
; Enter the Physical path of your Application on your server
dir_ws_http_catalog = "/A2BCustomer_UI/"
; Enter the Physical path of your Application on your Secure Server
dir_ws_https_catalog = "/A2BCustomer_UI/"
; secure webserver for checkout procedure?
enable_ssl = yes

http_domain =

dir_ws_http = "/var/www/html/a2customer/"

; maybe try with :
; Define here the URL to notify the payment
; payment_notify_url=...

;define the different amount of purchase that would be available - 5 amount maximum (5:10:15)
purchase_amount = 20:30:50:100:500

; Item name that would be display to the user when he will buy credit
item_name = "Credit Purchase"

; Currency for the Credit purchase, only one can be define here
currency_code = USD

; Define here the URL of paypal gateway the payment (to test with paypal sandbox)
;paypal_payment_url = ""
paypal_payment_url = ""

;paypal transaction verification url
;paypal_verify_url =
paypal_verify_url =

; Define here the URL of Authorize gateway
;authorize_payment_url = ""
authorize_payment_url = ""

;paypal store name to show in the paypal site when customer will go to pay
store_name = SnapVox

;Transaction Key for security of Epayment Max length of 60 Characters.
transaction_key = asdf1212fasd121554sd4f5s45sdf

;Moneybookers secret word
moneybookers_secretword = areski

; enable the signup module
enable_signup = 1

; enable Captcha on the signup module (value : YES or NO)
enable_captcha = YES

; amount of credit applied to a new user.
credit = 0

; the list of id of call plans which will be shown in signup.
callplan_id_list = 1, 2

; Specify whether the card is created as active or pending
activated = no

; Simultaneous or non concurrent access with the card - 0 = INDIVIDUAL ACCESS or 1 = SIMULTANEOUS ACCESS
simultaccess = 0

typepaid = 0

; Define credit limit, which is only used for a POSTPAY card.
creditlimit = 0

; Authorise the recurring service to apply on this card - Yes 1 - No 0
runservice = 0

; Enable the expiry of the card - Yes 1 - No 0
enableexpire = 0

; Expiry Date format YYYY-MM-DD HH:MM:SS. For instance, '2004-12-31 00:00:00'

expirationdate =

; The number of days after which the card will expire
expiredays = 0

; Create a sip account from signup ( default : yes )
sip_account = yes

; Create an iax account from signup ( default : yes )
iax_account = yes

; active card after the new signup. if No, the Signup confirmation is needed and an email will be sent
; to the user with a link for activation (need to put the link into the Signup mail template)
activatedbyuser = no

; url of the customer interface to display after activation
urlcustomerinterface = http://localhost/A2BCustomer_UI/

; Define if you want to reload Asterisk when a SIP / IAX Friend is created at signup time
reload_asterisk_if_sipiax_created = no

; configuration for backup and restore

; Path to store backup of database
backup_path = /tmp

; path for gzip
gzip_exe = /bin/gzip

; path for gunzip
gunzip_exe = /bin/gunzip

; path for mysqldump
mysqldump = /usr/bin/mysqldump

; path for pg_dump
pg_dump = /usr/bin/pg_dump

; path for mysql
mysql = /usr/bin/mysql

;path for psql
psql = /usr/bin/psql


; Path to store the asterisk configuration files SIP & IAX
buddy_sip_file = /etc/asterisk/additional_a2billing_sip.conf
buddy_iax_file = /etc/asterisk/additional_a2billing_iax.conf

; API have a security key to validate the http request, the key has to be sent after applying md5
; Valid characters are [a-z,A-Z,0-9]
api_security_key = Ae87v56zzl34v

; API to restrict the IP's authorised to make a request.
; Define The the list of ips separated by ;
api_ip_auth =

; Administative Email(not used yet)
email_admin = [email protected]

; MOH (Music on Hold) base directory
dir_store_mohmp3 = /var/lib/asterisk/mohmp3

; Number of MOH classes you have created in musiconhold.conf : acc_1, acc_2... acc_10 class etc...
num_musiconhold_class = 10

; Display the help section inside the admin interface (YES - NO)
show_help = YES

; File Upload parameters
my_max_file_size_import = 1024000 ; 1 MG

; Not used yet, The goal is to upload files and use them in the IVR
dir_store_audio = /var/lib/asterisk/sounds/a2billing

; upload maximum file size
my_max_file_size_audio=3072000 ; in bytes

; File type extensions permitted to be uploaded such as "gsm, mp3, wav" (separated by ,)
file_ext_allow = gsm, mp3, wav

; File type extensions permitted to be uploaded for the musiconhold such as "gsm, mp3, wav" (separate by ,)
file_ext_allow_musiconhold = mp3


; Enable link on the CDR viewer to the recordings. (YES - NO)
link_audio_file = NO

; Path to link the recorded monitor files
monitor_path = /var/spool/asterisk/monitor
; grant access to apache user on read mode for the directory :> chmod 755 /var/spool/asterisk/monitor/

monitor_formatfile = gsm

; Display the icon in the invoice
show_icon_invoice = YES


; Display the top frame (useful if you want to save space on your little tiny screen )
show_top_frame = NO

; Allow the customer to chose the most appropriate currency ("all" can be used)
currency_choose = usd, eur, cad, hkd

; field to export in csv format from cc_card table
card_export_field_list = creationdate, username, credit, lastname, firstname

; field to export in csv format from cc_voucher table
voucher_export_field_list = id, voucher, credit, tag, activated, usedcardnumber, usedate, currency

; Advanced mode - Display additional configuration options on the ratecard (progressive rates, musiconhold, ...)
advanced_mode = NO

; Delete the SIP/IAX Friend & callerid when a card is deleted
delete_fk_card = yes

; This section is basically used when we create a new friend
; when you create a SIP IAX friend for a card the following parameters will define the default value for the peer creation
; Refer to sip.conf & iax.conf documentation for the meaning of those parameters
; sip.conf ->
; iax.conf ->
type = friend
allow = ulaw, alaw, gsm, g729
context = a2billing
; use "no" or "yes" with quote otherwise the value will be converted to 1 or 0
nat = "yes"
amaflag = billing
; use "no" or "yes" with quote otherwise the value will be converted to 1 or 0
qualify = "yes"
host = dynamic
dtmfmode = RFC2833

; To disable application logging, remove/comment the log file name aside service

; cront - recurring process
cront_alarm = /tmp/cront_a2b_alarm.log
cront_autorefill = /tmp/cront_a2b_autorefill.log
cront_batch_process = /tmp/cront_a2b_batch_process.log
cront_bill_diduse = /tmp/cront_a2b_bill_diduse.log
cront_subscriptionfee = /tmp/cront_a2b_subscription_fee.log
cront_currency_update = /tmp/cront_a2b_currency_update.log
cront_invoice = /tmp/cront_a2b_invoice.log
cront_check_account = /tmp/cront_a2b_check_account.log

; paypal log file, to log all the transaction & error
paypal = /tmp/a2billing_paypal.log

; epayment log file, to log all the transaction & error
epayment = /tmp/a2billing_epayment.log

; Log file to store the ecommerce API requests
api_ecommerce = /tmp/api_ecommerce_request.log

; Log file to store the CallBack API requests
api_callback = /tmp/api_callback_request.log

; File to log
agi = /tmp/a2billing_agi.log

; configuration for the AGI, different configuration can be defined, ie "agi-conf1", "agi-conf2", etc...
; the groupid parameter will define which process_sections to use. Usage : DeadAGI(a2billing.php|%groupid%)
; by default agi-conf1 is used

; the debug level
; 0=none, 1=low, 2=normal, 3=all
debug = 1

; Asterisk Version Information
; 1_1,1_2,1_4 By Default it will take 1_2 or higher
asterisk_version = 1_2

; Manage the answer on the call
answer_call = YES

; 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 = YES

; 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 = YES

; 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 = NO

; 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
cid_askpincode_ifnot_callerid = YES

; 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
cid_auto_create_card = NO

; 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 = NO

; 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 =

; More information about the 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
; 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|HRrL(%timeout%:61000:30000)"

; by default (3600000 = 1HOUR MAX CALL)
dialcommand_param_sipiax_friend = "|60|HL(3600000:61000:30000)"

; Define the order to make the outbound call
; YES -> SIP/[email protected]_ip - NO SIP/gateway_ip/dialedphonenumber
; Both should work exactly the same but i experimented one case when gateway was supporting [email protected]_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 =

; 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

exten => _X.,1,Answer
exten => _X.,n,DeadAGI(a2billing.php|1)
exten => _X.,n,Hangup

exten => _X.,1,Answer
exten => _X.,n,DeadAGI(a2billing.php|1)
exten => _X.,n,Hangup

exten => _X.,1,deadAGI(a2billing.php|1|did)
exten => _X.,2,Hangup

;To deliver DID and bill for them
exten => _X.,1,deadAGI(a2billing.php|1|did)
exten => _X.,2,Hangup


 Post subject:
PostPosted: Sun Jan 25, 2009 11:14 am 

Joined: Fri Jun 23, 2006 3:56 pm
Posts: 4065
Is there any chance your DID provider is sending +12485222311

This would not match.

For testing purposes try this: -

exten => _.,1,Answer
exten => _.,n,DeadAGI(a2billing.php|1)
exten => _.,n,Hangup


 Post subject:
PostPosted: Mon Jan 26, 2009 2:15 pm 

Joined: Sat Jan 24, 2009 7:45 pm
Posts: 2
I am not sure if the DID provider is sending a +1, but I know that the call is using that incoming route, as I have tested redirecting it to an IVR.

I tried replacing with the code jroper supplied, and the condition did not change.

 Post subject:
PostPosted: Tue Apr 21, 2009 12:53 am 

Joined: Sat May 10, 2008 4:19 pm
Posts: 132
Location: Wilmington, DE

I realize that its been a while since you had this little challenge and hopefully it was solved. Posting your solution helps others who may be having the same challenge. If it was an incoming trunk configuration, we would still like to know. Everything else looks good to me.

If you need to revisit this, please let me know and we will work it out.

Have a great day.

 Post subject: Re: Channel 'SIP/92310469-b7709b10' sent into invalid extension
PostPosted: Tue Jun 29, 2010 9:23 pm 

Joined: Tue Feb 02, 2010 8:01 pm
Posts: 14
anyone got the solution for this problem?

when point to custom-a2billing it works for calling card access

but when point to custom-a2billing-did getting the same invalid handler error,

this is for DID billing to an extension number

Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 
Hosted Voice Broadcast

All times are UTC

Who is online

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