blogs

Attempting to Register to BusinessVoip

I'm trying to register with BusinessVoip via Freeswitch, but I'm having no luck so far. Simple registration doesn't work; I wonder if it has something to do with the "RegistrationAddress" and similar variable, which have no counterpart on Freeswitch (or even Asterisk) to my knowledge.

Suggestions welcome, of course.

Captcha!

I've enabled Captcha for this web site, which will hopefully cut down on the number of false registrations.

Nokia E61 and connecting to Prophecy

I've got my hands on a Nokia E61, and I can't quite figure out how to make it connect to a Prophecy server.

Ordinary softphones don't need to register or have a proxy defined; I can just type in the name of the extension and the server (e.g., "connectionTest@flute") and I'll connect up.

With the Nokia, the darn thing seems to insist that it be "registered," and if the phone isn't registered I can't use the SIP stack at all.

I expect that I can run an Asterisk or Freeswitch server to act as a registrar and make connections between my phone and P2006, but it'd be far nicer to have the Nokia connect directly.

Any suggestions? If so, please include a comment with the answer.

My settings for the E61 include:

Proxy:
Server: flute (IP address)
Realm: flute

the rest set to None and/or defaults

For registration:
Server: None
Realm: flute

the rest set to None and/or defaults

Move not supported

CCXML 1.0's <move> element isn't supported and won't be for the foreseeable future. Just thought I'd mention it.

And now for a hundred lines of work-around code...

The Conference ID Problem and a Workaround

I don't usually have more than one conference object running at a time, but over the past few weeks I've been using several at once and tying them together into a network. As I was doing this, I noticed that even though I'd made a logic error trying to connect them together, I they still seemed to share audio. I was puzzled, to say the least.

I've discovered the problem: if you start a script that creates a conference object, that script always creates the same conference object. That is, it always creates a conference ID of -18F38D18. Note: my readers tell me that the ID is based on the server's IP address.

This is completely unexpected. When you start a script that creates a call, you get a difference connection ID and a different call each time you start the script. That way you don't have to worry -- each time you start the script you get a different instance and you can run one script or a thousand. Not so with conferences; run one or one thouand and you get the same object shared among all the call instances.

Voxeo has agreed to fix this problem. In the meantime, there's a work-around: give the conference a unique name using the confname attribute to <createconference>, and you'll get a unique conference object. (If you set confname to foo, you get foo-18F38D18 as the conference name -- someone really liked that character sequence!)

Then the problem becomes automatically generrating a different confname for each instance. You can use server-side scripting; you can use ECMAScript and create a string that's based on, e.g., the current time; or you can do what I do. I "cheat" by recycling a connection ID. If I'm trying to create a conference to connect to a call, then I use add a "conf" prefix to a connection ID and use that as a confname. Since each connection ID is different, each conference I create will be different.

No Name Change

The name of this web site won't change, by the way; it's named after the first release of Voxeo's Prophecy system and there's no need to fiddle with it.

I have a lot of interesting articles to write; I've gained some interesting insights while working on a Big Project. Unfortunately, as might be expected, I have no time to write them at the moment...

Asterisk vs. Freeswitch

I've got several different services I use for SIP connectivity: a BusinessVoIP account from Voxeo, another SIP provider account for making bulk outbound calls, and I'm about to sign up with a SIP service provider to transfer my phone away from AT&T to a company I can trust.

And I'd like to use Prophecy with all these providers, but that's simply not possible right now. I can't have them all up simultaneously. The easiest way around that would be to use a PBX such as Asterisk or a softswitch such as Freeswitch, but I don't have any experience with the latter and don't know if either one will integrate with Voxeo.

If anyone would care to post a How-To, discuss their experiences, or give me a few URLs to look at, I'd be obliged. We can open a chapter in the How-To book if there's enough data, or we can open a Forum topic if there's enough controversy.

Sending Data When Starting CCXML via HTTP Requests

I'd like to reveal a secret: an easier way to get at GET variables inside CCXML 1.0 scripts.

As described in detail elsewhere, when you can start a CCXML script by using

http://servername:9999/CCXML10.start?tokenid=scriptname

If you want to send some information along, the typical method is to tack the information along as a GET request and then use PHP to extract that information into the script.

In other words, the URL looks like

http://servername:9999/CCXML10.start?tokenid=scriptname&foo=bar

and you include PHP code that looks like

<?php echo ($_GET["foo"]) ?>

to access the foo variable.

However, there's a secret extension to the session variables called "session.external". The GET variables are available as

session.external.foo

as well as

session.external['foo']

This is aside from the other undocumented variable URL1, which contains the entire URL that started the CCXML document.

By the way, session.external also works for Voxeo's hosted CCXML 1.0 scripts — this is tremendously important if you need to start a hosted script with a token and you want to host the script at Voxeo's servers as well.

Proposed FTC Rule May Squash Legit Services

The FTC just proposed a rule that will squash legitimate pre-recorded calls, including a service that I'd intended to launch in 2007. I've blogged about it here.

Oh, and you can comment on this rule until November 6th. Vote early!

Log Viewer Guide?

Has anyone compiled a guide that explains how to find log file entries? The Log Viewer, for example, is clearly deficient when it comes time to find VoiceXML output -- I can't find any output of the "log" element, and I'm morally certain it's there.

I always manage to find this stuff in the end, but when I put the system aside for a month, I need to re-learn everything. Has anyone compiled a list of what's what in the Log directory?

Syndicate content