Zoiper Setup for AllStar

Zoiper is an iOS and Android VoIP telephone app that can be used with AllStar.

AllStar Node Settings
The Zoiper configuration below allows connections to any node on your AllStar server.

In /etc/asterisk/custom/iax.conf add the following lines. This sets the user ID to zoiper and password to the password of your choice. Any number of users can use this ID at the same time.

; Login for zoiper
[zoiper]
username=Users
type=friend
context=zoiper
host=dynamic
auth=md5
secret=yourZoiperPassword
disallow=all
allow=ulaw
allow=g726aal2
allow=gsm
codecpriority=host
transfer=no

If you want to have individual IDs, use the configuration below in place of or in addition to the configuration above. Repeat these lines for each user, replacing [wb6xxx] with the users call sign and replace with call sign in caps ie callerid=“WB6XXX”. Repeat for as many users as needed.

; Login for user wb6xxx
[wb6xxx]
username="First and last name"
type=friend
context=zoiper
host=dynamic
auth=md5
secret=userZoiperPassword
disallow=all
allow=ulaw
allow=g726aal2
allow=gsm
codecpriority=host
transfer=no
callerid="WB6XXX"

In /etc/asterisk/custom/extensions.conf add the following lines. All of the users created in iax.conf will use this same configuration.

[zoiper]
exten => _X!,1,Ringing
exten => _X!,n,Wait(10)
exten => _X!,n,NoOp(${CALLERID(name)})
exten => _X!,n,NoOp(${CALLERID(number)})
exten => _X!,n,Set(CALLSIGN=${CALLERID(name)})
exten => _X!,n,GotoIf($[${ISNULL(${CALLSIGN})} = 1]?hangit)
exten => _X!,n,Answer
exten => _X!,n,Wait(3)
exten => _X!,n,Playback(connecting)
exten => _X!,n,rpt(${EXTEN}|Pv|${CALLSIGN}-P)
exten => _X!,n(hangit),Answer
exten => _X!,n,Playback(connection-failed)
exten => _X!,n,Wait(1)
exten => _X!,n,Hangup

Smart Phone Settings
These instructions are for iPhone. Android will look slightly different.

  1. Download the Zoiper Free app from the App Store.
  2. Open Zoiper and click Settings.
  3. Click Accounts. First time set up may take you directly to accounts.
  4. Click “Yes” you already have an account.
  5. Click Manual Configuration.
  6. Click IAX.
  7. Details (see screen capture below)
  • Account name: [Chose a nice name]
  • Server: [IP address of your node]
  • User name: [ID set in iax.conf]
  • Password: [Password set in iax.conf]
  • Caller ID: [Call sign in uppercase]
  • Select enable on start
  1. If things are right you will see the account registering and then after about 10 seconds it should show OK. If the registration fails, check your settings in the account.

Using Zoiper

  • Bring up the keypad and dial the node number. Press Call. Zoiper can only call nodes on your server. However, once Zoiper is connected you can connect your node to other nodes with the keypad, just like with your radio’s keypad.
  • Press Speaker. When you hear “connecting”, press mute. Zoiper on AllStar uses VOX to key the transmitter. Press Mute to unmute and then talk.
  • Use ear buds to prevent echo.
  • Press End Call to disconnect.
  • Zoiper is logged in while running. Quit Zoiper to logout.
1 Like

How to Limit Connections
If you have multiple nodes on your server and you want to limit the connection to one or two nodes, this how.

This configuration allows connections to node 500 and 501 only. With this example node 501 is listen only. Node 501 is connected to 500 in monitor mode with a startup_macro = *2500 command in rpt.conf. VOX has been turned off on node 501 so users can’t talk to each other.

/etc/asterisk/custom/extensions.conf

[zoiper]
exten => _X!,1,Ringing
exten => _X!,n,Wait(10)
exten => _X!,n,NoOp(${CALLERID(name)})
exten => _X!,n,Set(CALLSIGN=${CALLERID(name)})
exten => _X!,n,GotoIf($[${EXTEN} = 500]?xceive)
exten => _X!,n,GotoIf($[${EXTEN} = 501]?rxonly)
exten => _X!,n,Playback(connection-failed)
exten => _X!,n,Wait(1)
exten => _X!,n,Hangup
exten => _X!,n(xceive),Answer
exten => _X!,n,Playback(connecting)
exten => _X!,n,rpt(500|Pv|${CALLSIGN}-P)       ; Xceive w/VOX
exten => _X!,n,Wait(1)
exten => _X!,n,Hangup
exten => _X!,n(rxonly),Answer
exten => _X!,n,Playback(connecting)
exten => _X!,n,rpt(501|P|${CALLSIGN}-P)        ; Rx only, w/o VOX
exten => _X!,n,Playback(connection-failed)
exten => _X!,n,Wait(1)
exten => _X!,n,Hangup
1 Like

k6dvd asked me

  1. What dictates the [stanza] name in iax.conf? I used “myphone”
    according to another example I read and it works.

  2. I would like to understand the commands and syntax used in
    extensions.conf. Where can I find this info?

The context is set by iax.conf with the context= statement. It can be pretty much whatever you like as long as you make the same in extensions.conf. Think of it as what that happens when call comes in. The incoming call jumps into the dialplan (which is set by extensions.conf) at the context.

You can see the dialplan with the Asterisk CLI command dialplan show or just the context within the dial plan with dialplan show zoiper.

Here’s a sample CLI command showing the dialplan for the context called wd6awp. Notice only the context name is different than the zoiper example above.

Huntington*CLI> dialplan show wd6awp
[ Context 'wd6awp' created by 'pbx_config' ]
  '_X!' =>          1. Ringing()                                  [pbx_config]
                    2. Wait(10)                                   [pbx_config]
                    3. NoOp(${CALLERID(name)})                    [pbx_config]
                    4. NoOp(${CALLERID(number)})                  [pbx_config]
                    5. Set(CALLSIGN=${CALLERID(name)})            [pbx_config]
                    6. GotoIf($[${ISNULL(${CALLSIGN})} = 1]?hangit) [pbx_config]
                    7. Answer()                                   [pbx_config]
                    8. Wait(3)                                    [pbx_config]
                    9. Playback(connecting)                       [pbx_config]
                    10. rpt(${EXTEN}|Pv|${CALLSIGN}-P)            [pbx_config]
     [hangit]       11. Answer()                                  [pbx_config]
                    12. Playback(connection-failed)               [pbx_config]
                    13. Wait(1)                                   [pbx_config]
                    14. Hangup()                                  [pbx_config]
Huntington*CLI> 

The best way to learn about asterisk is the definitive book on Asterisk, the O’reilly book.

But there are lots of places on the net with most all of what is in that book. Google is you friend.

ARP:

How correlated is this Allstarlink user group with hamvoip.org ?

I see that your recommended extensions.conf for Zoiper is quite different from version in hamvoip.org :

https://hamvoip.org/ConnectZoipertoAllstarNode.pdf

I am trying to connect Iphone/Zoiper with an RP3 with CM119 FOB.

The RP3/FOB is connected to both an external speaker and mic.

I can hear the RP3 ID’ing and announcing time on the iphone and FOB speaker.

Iphone is not receiving mic transmissions thru the FOB/RP3.

Neither are my iphone transmissions being received by the RP3/FOB external speaker.

Would appreciate any advice.

Thank you

Sorry, I meant AWP.

Chuck
N5BUX

It’s different only because I like the way I do it. Anyone is free to share their ways to configure AllStar on this site.

Interesting problem which I don’t know how to solve. Ideas anyone?

1 Like

@N5BUX, I’ve been mulling this over. Is your mic/spkr node setup with duplex=2? I suspect it’s not because then you’d hear yourself and have feedback if the volume was too loud or the speaker too close. But try that anyway and see if that fixes the Zoiper issue. If it does but it’s not the ideal solution I have another ideal. Post back after you try it.

Thanks. You are very kind and generous to in your contributions to the community. It’s wonderful.

My friend KG5AH has the hardware at the moment and I have been remotely checking the software. Looking at the extensions.conf, it appears we have no Zoipers section, at all. Will inform as soon as we soon as we complete detailed review of extensions.conf and verify duplex setting. Thanks much for willingness to followup.

Experiencing the world of PBX has been very rewarding so far, despite the formidable learning curve. We have a long way to go to fathom it all, which gives me a very high appreciation for what you and the others have put it together.
Well done.
Thank you
N5BUX

The Asterisk learning curve is a steep one indeed and I’m somewhere low on that curve but I’m happy to share what I know.

Go with the hamvoip Zoiper setup to start. You can always change it later as you learn and do it your own way. That’s part of the AllStar fun.

1 Like

Far too modest.

When I first tried Zoiper a four or five years ago I followed Doug’s instructions, eventually getting it to work. I prefer’s Tim’s at the top of this thread. His are very well written, concise and simple to follow. I will be referring people to this thread when they ask about Zoiper. Well done @wd6awp and thank you for taking the time to write it.

I am running Allstar on a Raspberry Pi 3B+. How many Zoiper users can be connected at the same time?

Ted, KC3OL . QRM DMR Network

Howdy Ted,

That’s hard to say exactly because it depends on many factors. Keep an eye on your CPU, watch the bandwidth and if things start going to heck you’ve reached the limit for your setup. I would think a dozen or two should be fine but I never tested it.

How many Zoiper users are you expecting? BTW, the same ID/password can be used for all Zoiper users if you like.

I estimate 5-6 users at the same time so there shouldn’t be a problem. When I first set it up earlier today with the PTT option today someone got stuck in the XMIT mode and tapping on the # did not work. There were three of us connected at the time when this happened. Since then I have made changes to iax.conf and extensions per your recommendations and am hoping that all will be OK.

Ted

¡¡¡

On Jul 22, 2019, at 4:05 PM, Tim Sawyer via AllStarLink Discussion Groups noreply@community.allstarlink.org wrote:


wd6awp
ASL Admin

    July 22

Howdy Ted,

kc3ol:
How many Zoiper users can be connected at the same time?

That’s hard to say exactly because it depends on many factors. Keep an eye on your CPU, watch the bandwidth and if things start going to heck you’ve reached the limit for your setup. I would think a dozen or two should be fine but I never tested it.

How many Zoiper users are you expecting? BTW, the same ID/password can be used for all Zoiper users if you like.


Visit Topic or reply to this email to respond.


In Reply To


kc3ol

    July 22

I am running Allstar on a Raspberry Pi 3B+. How many Zoiper users can be connected at the same time? Ted, KC3OL . QRM DMR Network


Visit Topic or reply to this email to respond.

To unsubscribe from these emails, click here.

Zoiper works on VOX. The # won’t unkey. Users must press the mute button to unkey.

You can change a setting in extensions.conf to disable VOX. I have it setup for PTT. I use *99 to transmit and # for receive.

The setting to disable VOX is to remove the v from:

exten => _X!,n,rpt(500|Pv|${CALLSIGN}-P)       ; Xceive w/VOX

Your call to the rpt() app may be slightly different. If so just remove the v.

I’ve never run Zoiper w/o VOX but I see no reason why it wouldn’t work.

I have iaxRpt working on PC and on DVSwitch on Android. I have it working on iPhone BUT cannot get mic audio to work. Account registers, can hear audio, can issue control commands, but no audio gets passed on unmute. Ideas?

Same issue Zoiper on Mac- registers and passes audio but no mic audio passed on unmute.

It is important to set the extension to Phone-vox ‘Pv’ to use it as vox.
See Tim’s example above.

I believe used purely in Phone mode, you need to initiate *99 to TX and # to rx again.

1 Like