Outgoing call ACTION URL doesn't work on speaker or bluetooth




I have GXP 2130. 2135, and 2160.
I have set an action url for “outgoing call”.
it only triggers when in handset mode (handset is lifted and used to dial).
When i use the keypad to dial while the handset is down, using speaker or bluetooth - then the action url will not trigger.

Also, the parameter $calldirection parameter in any actionurl is not working and is always left empty.

Ingoing call action url - is working fine. with speaker or bluetooth
All are version

Please advise,
Thanks !


There are a lot of problems with ActionURL. In my opinion it is unusable in its present form.

The biggest problem I’ve found is that it doesn’t escape invalid characters in the generated URL, so if any of the fields you include (like caller ID name) have blanks or other invalid characters, the resulting URL is malformed and will probably get silently rejected by whatever you’re using to read it. A packet capture can be enlightening.

I have a list I’ve sent to Grandstream in hopes they’ll fix some of the problems. I’ll attach it below. I’d suggest you create your own list, or add to mine, and send it to Grandstream in a ticket or however.

ActionURLs have a lot of promise. I want to create an application that displays phone activity in Skype-style popups. My application is to let a manager see incoming calls on the receptionist’s phone and be able to pick them up. There are many other interesting uses. But first they needs to work.



Seems like my problem was fixed on
it now triggers on every method of outgoing call.

Still, ActionURLs are extremely bogus and limited.
The $calldirection parameter that was described in the “ActionURL implementation guide” seems to be omitted from any recent firmware , and of course doesn’t work like many other parameters.


If you’re referring to the “ActionURL Module User Guide”, that manual is for GXV3240/3275. The GXP implementation is described in the latest GXP Admin Guide.

That said, the GXP description has a somewhat different set of dynamic variables, and some of the GXV ones work on the GXP even though they aren’t documented for the GXP. Of particular note is $call-id, without which it is impossible to match events with calls.

I hope they get this straightened out. I’m putting quite a bit of time into a phone monitor program that depends on working ActionURLs to be useful.



I know this post is about 2 years late, but did you by any chance happen to get Action URL working? I am struggling with GXP2170 phones and the ActionURLs have stopped working after upgrading to from

It would be really helpful if there was more info on ActionURL usage.



Sorry, but I gave up on it. Basically I realized that the information available through ActionURLs isn’t sufficient to do what I wanted to do. The program using ActionURLs would need to also talk to the PBX to provide useful information to the user about calls coming in, and I didn’t feel like jumping into that swamp.

I’ve attached the C# code for the program I wrote, which works as far as it goes. Much of the code is for generating popup notifications and is thus not relevant. I’m omitting most of my notes about this work, plus the resources needed to compile this code; if you (or anyone) wants it all, PM me with your email address.

It sounds like you have a situation that would best be handled by working with Grandstream support. I’d suggest opening a ticket. It sometimes takes a few tries to get them to recognize that there really is a problem, but eventually it works (and to be fair, sometimes the problem isn’t what I think it is).

GSCID.zip (94.5 KB)



@exeyesoftware Thank you so much for the info, it has really helped me understand the ActionURL better. If there was any other alternative to Action URLs that we could use to better interface with the phone could have worked perfectly. As you suggested, I opened up a ticket hopefully will get some new documentation/notes that I hope is useful.

Thanks again for all the help!