Google blocking >1 GV account per IP?

amygrant

Guru
Joined
Apr 4, 2010
Messages
132
Reaction score
3
[ Title of this post should be "Route with multiple GV trunks only using first GV trunk" but I cannot edit the title that is showing when looking at the Help section of the forums ]

I have a custom context named CHARLIESHEEN which only access to a route called WINNING. The WINNING route has 3 GV trunks in its trunk sequence: gvtrunk1, gvtrunk2, and gvtrunk3

I have 3 SIP extensions all of which are setup to use the custom context CHARLIESHEEN. All extensions work fine out outbound and inbound calling.

However, failure occurs when two of the extensions try to have an outbound call at the same time. If extension1 is already on an outbound call and then extension2 tries to make an outbound call, asterisk tries using the same trunk that extension1 is already on and I get this in my logs:

Code:
[2011-04-13 10:14:31] VERBOSE[3703] pbx.c:     -- Executing [somephonenumber@gvoice-gvtrunk1:5] NoOp("Local/somephonenumber@gvoice-gvtrunk1-7474;2", "Never received callback from Google Voice on channel Local/somephonenumber@gvoice-gvtrunk1-7474;2 - exiting") in new stack

So I don't get the call back through jabber and asterisk times out after 30 seconds and then the call is aborted.

Alright, so the question is why is asterisk not selecting the gvtrunk2 since extension1 is already on gvtrunk1? The trunk definitions do have maximum channels set to 1.

Ironically, this setup is currently not winning.

The [googlein] section from my extensions_custom.conf
Code:
exten => [email protected],1,Wait(1)
exten => [email protected],n,Set([email protected])
exten => [email protected],n,JABBERSend(asterisk1,${ALERTNAME},Incoming Google Voice Call: ${CALLERID(name):2:10})
exten => [email protected],n,Set(CALLERID(number)=${CALLERID(name):2:10})
exten => [email protected],n,Set(CALLERID(name)=${CALLERID(number)})
exten => [email protected],n,GotoIf(${DB_EXISTS(gv_dialout_gvtrunk1/channel)}?bridged)
exten => [email protected],n,Goto(s,regcall)
exten => [email protected],n(bridged),Bridge(${DB_DELETE(gv_dialout_gvtrunk1/channel)}, p)

exten => [email protected],1,Wait(1)
exten => [email protected],n,Set([email protected])
exten => [email protected],n,JABBERSend(asterisk2,${ALERTNAME},Incoming Google Voice Call: ${CALLERID(name):2:10})
exten => [email protected],n,Set(CALLERID(number)=${CALLERID(name):2:10})
exten => [email protected],n,Set(CALLERID(name)=${CALLERID(number)})
exten => [email protected],n,GotoIf(${DB_EXISTS(gv_dialout_gvtrunk2/channel)}?bridged)
exten => [email protected],n,Goto(s,regcall)
exten => [email protected],n(bridged),Bridge(${DB_DELETE(gv_dialout_gvtrunk2/channel)}, p)

The trunk definition section of extensions_custom.cof
Code:
[gvoice-gvtrunk1]
exten => _X.,1,System(sudo /usr/bin/gvoice -e [email protected] -p PASSWORD call ${EXTEN} [email protected] 9 &)
exten => _X.,n,Background(pls-wait-connect-call)
exten => _X.,n,Set(DB(gv_dialout_gvtrunk1/channel)=${CHANNEL})
exten => _X.,n,Wait(30)
exten => _X.,n,Noop(Never received callback from Google Voice on channel ${DB_DELETE(gv_dialout_gvtrunk1/channel)} - exiting)
exten => h,1,GotoIf($["${CHANNEL(state)}" = "Ring"]?:bridged)
exten => h,n,Noop(Hangup on channel ${DB_DELETE(gv_dialout_gvtrunk1/channel)})
exten => h,n,System(sudo /usr/bin/gvoice -e [email protected] -p PASSWORD cancel &)
exten => h,n,Hangup()  
exten => h,n(bridged),Noop(The channel has been bridged successfully)

[gvoice-gvtrunk2]
exten => _X.,1,System(sudo /usr/bin/gvoice -e [email protected] -p PASSWORD call ${EXTEN} [email protected] 9 &)
exten => _X.,n,Background(pls-wait-connect-call)
exten => _X.,n,Set(DB(gv_dialout_gvtrunk2/channel)=${CHANNEL})
exten => _X.,n,Wait(30)
exten => _X.,n,Noop(Never received callback from Google Voice on channel ${DB_DELETE(gv_dialout_gvtrunk2/channel)} - exiting)
exten => h,1,GotoIf($["${CHANNEL(state)}" = "Ring"]?:bridged)
exten => h,n,Noop(Hangup on channel ${DB_DELETE(gv_dialout_gvtrunk2/channel)})
exten => h,n,System(sudo /usr/bin/gvoice -e [email protected] -p PASSWORD cancel &)
exten => h,n,Hangup()  
exten => h,n(bridged),Noop(The channel has been bridged successfully)


As a temporary fix I am going to create a separate outbound route for each of the trunks, a separate custom context corresponding to each of those routes, and then bind each extension to its own custom context... but I am trying to figure out the why trunk2 is not being selected because I would like to have a small pool of GV accounts that numerous extensions can share for outbound calling instead of having too many unnecessary google accounts

Status
Code:
                                          +------------------------System Information---------------------------+
                                          |  Asterisk   = ONLINE  | Dahdi     = ONLINE  | MySQL     = ONLINE    |
                                          |  SSH        = ONLINE  | Apache    = ONLINE  | Iptables  = ONLINE    |
                                          |  Fail2ban   = ONLINE  | Internet  = ONLINE  | Ip6Tables = ONLINE    |
                                          |  BlueTooth  = ONLINE  | Hidd      = ONLINE  | NTPD      = ONLINE    |
                                          |  SendMail   = ONLINE  | Samba     = OFFLINE | Webmin    = ONLINE    |
                                          |  Ethernet0  = ONLINE  | Ethernet1 = N/A     | Wlan0     = N/A       |
                                          |                                                                     |
                                          |  PBX in a Flash Version   = 1.7.5.5                                 |
                                          |  FreePBX Version          = 2.8.1.4                                 |
                                          |  Running Asterisk Version = Asterisk 1.8.0                          |
                                          |  Asterisk Source Version  = 1.8.0                                   |
                                          |  Dahdi Source Version     = 2.4.0+2.4.0                             |
                                          |  Libpri Source Version    = 1.4.11.5                                |
                                          |  IP Address               = 192.168.1.5 on eth0                     |
                                          |  Operating System         = CentOS release 5.5 (Final)              |
                                          |  Kernel Version           = 2.6.18-194.26.1.el5 - 32 Bit            |
                                          |                                                                     |
                                          +---------------------------------------------------------------------+
 
Hmm.. This could be caused by still using the outdated Callback method and the buggy 1.8.0 version of Asterisk. Very detailed post, though. That was very helpful!
I suggest making a full backup of your system and then running update-programs, update-fixes, and then update-source to get the latest 1.8.3.2 which has all current fixes for GV integration IIRC.

If 1.8.3.2 doesn't solve your problem, try replacing the callback code with the updated non callback code. I have it posted under eCase's thread in the AddOn forum as a sticky. (Sorry no link, posting from iPhone).

Let me know if you need more help.
 
Ok, thank you for the advice and I found the link you reference.

I will try this later tonight and see how it rolls out. Thanks
 
Did you set 'tiger_blood=yes' in the config file?

Thank you! That fixed it and actually I'm even now able to make international calls free!! I can't believe this is not in the docs anywhere!

Thank you so much
 
IIRC, each gv account came with a minimal amount of calling credit $$. Check your gmail acct to verify

You are kind of right but this is crazy. When I set tiger_blood=yes in the jabber config, somehow that credited me with $69.00 and every time I restart jabber, it adds another $69!!

This is madness!
 
You are kind of right but this is crazy. When I set tiger_blood=yes in the jabber config, somehow that credited me with $69.00 and every time I restart jabber, it adds another $69!!

This is madness!

No, This Is SPARTA! :)
Just felt like I had to chime in.
Also, (not related to your changed title, but to first and displayed title) I had 7 GV accounts on one IP. FYI.

Let us know how everything works out for you! :D
 
Hmm.. This could be caused by still using the outdated Callback method and the buggy 1.8.0 version of Asterisk. Very detailed post, though. That was very helpful!
I suggest making a full backup of your system and then running update-programs, update-fixes, and then update-source to get the latest 1.8.3.2 which has all current fixes for GV integration IIRC.

If 1.8.3.2 doesn't solve your problem, try replacing the callback code with the updated non callback code. I have it posted under eCase's thread in the AddOn forum as a sticky. (Sorry no link, posting from iPhone).

Let me know if you need more help.

That was exactly the problem. Thank you kindly
 
No, This Is SPARTA! :)
Just felt like I had to chime in.
Also, (not related to your changed title, but to first and displayed title) I had 7 GV accounts on one IP. FYI.

Let us know how everything works out for you! :D

Damnit, I had to go watch some of those youtube vids where they overlay Leonidus' head on all those random other videos with techno nusic playing in the background because you said that... I was hoping someone would
 
Damnit, I had to go watch some of those youtube vids where they overlay Leonidus' head on all those random other videos with techno nusic playing in the background because you said that... I was hoping someone would
Glad I could help, and thanks for the humor!
Haha!
 

Members online

No members online now.

Forum statistics

Threads
26,687
Messages
174,410
Members
20,257
Latest member
Dempan
Get 3CX - Absolutely Free!

Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.
Back
Top