[Commotion-dev] FYI: Serval & OpenBTS integration

Dan Staples danstaples at opentechinstitute.org
Tue Nov 20 21:35:10 UTC 2012


Indeed that was the problem. I originally compiled app_servaldna linking
to the Asterisk 1.8 source, while the OpenBTS box was using v1.8.3.
Recompiling against the 1.8.3 source gave me a working channel driver.

Another thing I learned testing this out is that multiple identities
mess things up. I had two identities in the OpenBTS box's serval keyring
(one on a unique DID and the other DID set as the echo extension), and
nothing worked. DNA lookups from another machine resolved, but lookups
made from the OpenBTS box gave no results. Once I made a new keyring
with only one identity (and set the DID to the echo extension),
everything worked.

Hurrah! Thanks Jeremy for creating this functionality, it's very
exciting progress!

Dan

On 11/19/2012 04:57 PM, Jeremy Lakeman wrote:
> On Tue, Nov 20, 2012 at 5:47 AM, Dan Staples
> <danstaples at opentechinstitute.org> wrote:
>> That dnahelper debug flag helped me find what the problem was, though I
>> had to look through the source code to find the config option I needed
>> to set to fix it. I had to set
>> dna.helper.argv.1=/home/openbts/app_servaldna/conf_adv/num2sip.ini.
> Oops, could have sworn I'd checked that in.
>
>> Also, how can I specify a log file to use? I haven't been able to find
>> the various config options besides the couple listed in
>> doc/Servald-Configuration.md.
> You can set a log file either with an environment variable
> SERVALD_LOG_FILE, or by setting a log.file configuration value.
>
>> After setting this config option, I was able to successfully resolve
>> DIDs in both directions. However, I still wasn't able to place calls
>> from one to the other. When calling a serval number from OpenBTS, I got
>> the following warnings:
>>
>> [Nov 19 11:00:56] WARNING[2392]: channel.c:5414 ast_request: No channel
>> type registered for 'VOMP'
>> [Nov 19 11:00:56] WARNING[2392]: app_dial.c:2039 dial_exec_full: Unable
>> to create channel of type 'VOMP' (cause 66 - Channel not implemented)
>> When calli
>> This occurred even though I had added app_servaldna.so to
>> /usr/lib/asterisk/modules/.
> The vomp channel driver should log something to the asterisk log while
> asterisk is starting. Asterisk should also log something if it failed
> to load the module.
> Is the module file readable by the user running asterisk?
>
> Once the channel driver has started, servald should also log that it
> has a connected client.
>
>> I also had to add a new context to the
>> sample extensions.conf provided by serval in order to get my
>> openbts-registered phones to make calls:
>>
>> [phones]
>> include => openbts
>>
>> In the other direction, when setting the number of a serval phone to the
>> asterisk echo extension, and calling it from another phone's peer list,
>> it just goes through as a regular serval voice call between the two
>> phones instead of going to the echo service. Is this what you meant by
>> "Remote call to local asterisk test number" in the documentation, or am
>> I doing it wrong?
> Not quite. If you set the phone number of the servald instance on the
> bts box to the echo number in asterisk, then this is the extension
> that the vomp channel driver will connect you to when dialling the
> public key of the bts box.
> eg;
> servald keyring list
> servald set did [sid] [did] [name]
>
> But you'll need to work out why the channel driver isn't registering
> first. Hopefully that's the only remaining piece of the puzzle that
> isn't working.
>
>> Dan

-- 
Dan Staples
Open Technology Institute



More information about the Commotion-dev mailing list