Hello Im working on AsteriskNOW for senior design

Hello fellas

My name is Joe. I’m a senior at Michigan Tech University and I’m majoring in Computer Networking and Systems Administration. I’m working on AsteriskNOW for my senior design project.

I’m sure over the next few months I’m going to be asking you guys for lots of help. but i actually have a few questions now

I just installed asteriskNOW on virtualPC, here goes

  1. when i start the server i keep getting this error “lost some interrupts at 1024mhz” any idea what that is or how to fix it?

  2. i got the GUI up and running. right now here is my network setup

DSLmodem(realip address)–>router—>windows—>virutalPC(withastrisk)

right, now my virtualpc is set to use my windows network card so i can communicate with the outside world. Currently if i want to go to my asteriskNOW administration web page, first i have to remotedesktop into my windows box then go to 10.10.1.20 to view the asteriskNOW admin page.

what i want to do is figure out what port it runs on, then punch that through my router with port forwarding so that i can access my admin page from anywhere. So basically, what port does asteriskNOW work on?

  1. I’m going to be using some phones that require H263 how does asteriskNOW GUI handle that

  2. where is the main dialplan.config file that used to be in the old asterisk distro, I.E. what part of the GUI configures the dialplan

thanks guys

Welcome! Hopefully Asterisk will make a good project…

  1. no idea about lost interrupts.

  2. unless it runs on a funny port, it should be port 80. Many routers can do port forwarding to a different port, so you could forward say port 39139 to port 80 so it doesn’t show up in a port scan as open.

  3. Not sure about the GUI. I’ve never used the GUI.

  4. generally all the config files are in /etc/asterisk/. Dialplan is extensions.conf, channels are sip/zapata/iax.conf and others, etc.

IMHO if you want to LEARN asterisk, skip the GUI and go with the config files. The learning curve is steep but well worth it. Once you get that you can look into realtime config, which gets the same info from a database queried in realtime.

As for learning the config files, here is the hardest (and most useful) part:

but first- AN EXTENSION IS NOT A CHANNEL. Just because you make your sip phone have the username 1234, and define it as [1234] in sip.conf, does NOT mean that dialing 1234 will ring it. You need an extension (something you dial) that will send the call to the channel (SIP/1234, a place to send the call).

now then:

extensions.conf
[context]
include => othercontext

syntax:
exten => extension,priority,application(arguments)

exten => 1234,1,FirstThingToDo(arguments)
exten => 1234,2,SecondThingToDo(arguments)

a context is a group of extensions, a group of things that can be dialed. Every call/channel is ‘in’ a context, this is how you define who can dial what. When you are in a channel you can ONLY dial extensions in that context, and those included to it.

an extension is something you can dial. It is made up of one or more lines- the priority defines what order things are executed in. priority 1 runs first, then priority 2, etc.

application is what happens to the call. Dial() is used to send a call to a phone. Background() is used to play a sound file. Voicemail() sends them to voicemail, VoiceMailMain() lets you check voicemail. there are around 120 apps- do ‘show applications’ at the CLI. Goto() also sends them around, use Goto(context,exten,priority)
You can make an IVR (call menu) by having other single digit extensions in your context.

Here is an example extension:

exten => 1234,1,Dial(SIP/1234,20) ; dial SIP/1234 for 20 seconds
exten => 1234,2,VoiceMail(1234@default) ; go to voicemail box 1234 in default context (voicemail.conf has contexts too)

hope that helps!

Thank you very much for your response. I more or less have a book on Asterisks and i have read the information you gave me pertaining to the extentions.conf file. My project though, is strictly pertaining to the GUI of AsteriskNOW, I’m analyzing it to see if it has all the same capabilities of the CLI of traditional Asterisk. So with that in mind i was wondering how do you use the GUI to configure your extensions and your dial plan.

also how does it handle H263 phones.

maybe someone could try to explain the difference between Channels and Extensions one more time to me lol, I’m kinda thick

also what is the function and difference between these

IAX
IXO
IPX
SIP

I’ve read the viop-info articles, but I’m still having a hard time keeping them straight.

thanks

[quote=“jturner”]I’m a senior at Michigan Tech University and I’m majoring in Computer Networking and Systems Administration. I’m working on AsteriskNOW for my senior design project.
[/quote]

[quote=“jturner”]also what is the function and difference between these
IAX
IXO
IPX
SIP [/quote]

! gulp !

oh come on bacon… be nice :smile:

Remember that GUI, CLI and config files are 3 different things. GUI’s like AsteriskNOW or AMP/freepbx attempt to replace config files, NOT the cli. The CLI is still very useful for seeing what asterisk is doing. As for how you use the GUI to configure extensions, that depends on the GUI. THey all end up writing to either database for realtime or to the config files, keep that in mind. However the config files that result from a GUI may be a lot less readable than human-written ones.

As for h.263, asterisk sees it as a codec like ulaw or gsm. You must enable video support in sip.conf and then allow=h263 to allow asterisk to use the codec.

IAX and SIP are VoIP protocols. SIP is more common and is used by most all IP phones and ITSPs (voip providers). SIP is a control protocol, it uses RTP to actually transport media (voice/video data). It is a text based protocol that’s designed to be very flexible and extensible. One result of being text based is that a raw sip trace is usually human readable.
IAX (iax2 actually) is another VoIP protocol. Unlike SIP, media is sent over the same connection as the control data. This makes it much more NAT-friendly. IAX also has a ‘trunking mode’, if both sides of the connection have a working timing source IAX can be used in trunking mode which reduces overhead. Trunking mode is more bandwidth-efficient if you have 4 or more concurrant calls over an IAX link. IAX isn’t widely supported by IP phones or gadgets, but there are a few. Many providers now support IAX.

IPX is an old MAC-based networking protocol that hasn’t been widely used in quite a while.

As for IXO, I think you mean FXO and FXS. These are the two types of analog telephone ports.
FXO ports connect to a phone line. An FXO port on your Asterisk box will allow Asterisk to answer an incoming call / dial out, and otherwise make use of a line provided by your telco.
FXS ports connect to phone extensions. You plug one or more phones into an FXS port, and the FXS port supplies the phone with battery voltage, dialtone, ringing, etc.

A good way to remember the difference- FXS Serves phones with power and service.

As for channels and extensions-

On a traditional PBX or hybrid/key system, you will have line ports (line1, line2, line3, etc, btw these are FXO ports) and extension ports (10, 11, 12, 13, 14, etc, btw these are FXS ports). If you push the button line1 on any phone, it will pick up line 1. At the same time and more importantly, if you pick up a phone and dial 10, whatever phone is connected to the port ‘extension 10’ will start ringing. Thus, the thing you dial (10) and the physical port (the jack marked Ext10) are the same thing and this cannot be changed. I cannot for example, dial 10 and have the phone connected to the “Ext14” jack ring.

With Asterisk, the two are kept very separate. The extension (the thing you dial, ie 10) and the channel (the physical FXS port that the phone is connected to, or the SIP account a phone is registered to) are two different things and are kept completely separate.

So say for example we will create a fictional office. Their * server has 4 FXS ports (Zap/1 thru Zap/4), and 4 IP phones. We will, for the sake of argument, register the IP phones not using a number as the username but their names- bob, mary, frank, and carol.
You register the IP phone by making its sip.conf section start with [carol], and using carol as the username/authname on the phone. This makes its channel name SIP/carol, rather than SIP/1234 or whatever.

Now in extensions.conf we do something like

exten => 10,1,Dial(ZAP/1) ; user dials 10 and rings the phone connected to zap port 1
exten => 11,1,Dial(SIP/bob) ; user dials 11 and rings bob’s IP phone
exten => 12,1,Dial(ZAP/4) ; user dials 12 and rings Zap port 4
exten => 13,1,Dial(ZAP/2&SIP/frank) ; (Frank has two phones in his office, an analog speakerphon on zap port 2 and an IP phone on his desk. This calls both, whichever answers first gets the call.)
exten => 13,1,Dial(SIP/carol) ; user dials 13 and rings Carol’s ip phone
exten => 14,1,Dial(SIP/mary) ; same idea
exten => 226,1,Dial(SIP/carol&SIP/mary); Carol and Mary are assigned to the same project. This way their coworkers who want to talk to them about the project can dial 226 and get whoever answers first.
exten => 9432,1,Dial(ZAP/3) ; zap/3 connects to the phone in the cafeteria, so it is rarely dialed, thus a longer exten so it’s not accidentally dialed
exten => *999,1,Page(Console/DSP) ; the server’s sound card is hooked up to an overhead paging system. This way you can dial *999 and the Page() app plays a tone, then lets you talk over it.

The point is that the extension (the thing you dial) and the channel (what device or sip account your call is sent to) are two totally different things, and asterisk has no association between the two. THat’s what the dialplan, extensions.conf is there for- to tell asterisk what to do when you dial something. Using this functionality you can mix and match different types of IP phones, analog phones, etc. What you register them to the server as makes no difference, so registering a phone with a username of 1234 DOES NOT MEAN that automatically it will ring if you dial 1234 from another phone. See?

ok i get most of what your saying i do have a few questions though

[quote]
As for IXO, I think you mean FXO and FXS. These are the two types of analog telephone ports. [/quote]

i do

[quote]
FXS ports connect to phone extensions. You plug one or more phones into an FXS port, and the FXS port supplies the phone with battery voltage, dialtone, ringing, etc. [/quote]

how do you plug mutiple phones into one port? ive never seen these ports.

[quote]
As for channels and extensions-

On a traditional PBX or hybrid/key system, you will have line ports (line1, line2, line3, etc, btw these are FXO ports) and extension ports (10, 11, 12, 13, 14, etc, btw these are FXS ports). If you push the button line1 on any phone, it will pick up line 1. At the same time and more importantly, if you pick up a phone and dial 10, whatever phone is connected to the port ‘extension 10’ will start ringing. Thus, the thing you dial (10) and the physical port (the jack marked Ext10) are the same thing and this cannot be changed. I cannot for example, dial 10 and have the phone connected to the “Ext14” jack ring. [/quote]

ok wow. So if i dial 10 and it HAS to ring whatever is pluged into ext10 (which you say is an fxs port, with a phone pluged in then how does this work…

[quote]
With Asterisk, the two are kept very separate. The extension (the thing you dial, ie 10) and the channel (the physical FXS port that the phone is connected to, or the SIP account a phone is registered to) are two different things and are kept completely separate. [/quote]

you just said if i dial 10 “an extention a physical FXS” i ring whatever phone is connected to that (the channel)

[quote]
So say for example we will create a fictional office. Their * server has 4 FXS ports (Zap/1 thru Zap/4), and 4 IP phones. We will, for the sake of argument, register the IP phones not using a number as the username but their names- bob, mary, frank, and carol.
You register the IP phone by making its sip.conf section start with [carol], and using carol as the username/authname on the phone. This makes its channel name SIP/carol, rather than SIP/1234 or whatever.

Now in extensions.conf we do something like

exten => 10,1,Dial(ZAP/1) ; user dials 10 and rings the phone connected to zap port 1
exten => 11,1,Dial(SIP/bob) ; user dials 11 and rings bob’s IP phone
exten => 12,1,Dial(ZAP/4) ; user dials 12 and rings Zap port 4
exten => 13,1,Dial(ZAP/2&SIP/frank) ; (Frank has two phones in his office, an analog speakerphon on zap port 2 and an IP phone on his desk. This calls both, whichever answers first gets the call.)
exten => 13,1,Dial(SIP/carol) ; user dials 13 and rings Carol’s ip phone
exten => 14,1,Dial(SIP/mary) ; same idea
exten => 226,1,Dial(SIP/carol&SIP/mary); Carol and Mary are assigned to the same project. This way their coworkers who want to talk to them about the project can dial 226 and get whoever answers first.
exten => 9432,1,Dial(ZAP/3) ; zap/3 connects to the phone in the cafeteria, so it is rarely dialed, thus a longer exten so it’s not accidentally dialed
exten => *999,1,Page(Console/DSP) ; the server’s sound card is hooked up to an overhead paging system. This way you can dial *999 and the Page() app plays a tone, then lets you talk over it.[/quote]

here you have dial 10, ring ZAP/1

but above, you said “you cant dial 10 and ring ext14” so im confused. Ive read dialplan notes and the above dialplan makes sence to me.

any chance i can get you to elaberate anymore?

thanks

Remember analog ports are just that- they send analog electrical sound. It’s just like plugging two headphones into one iPod- if you get a splitter or somehow otherwise wire two telephones onto the same FXS port, they will both ring. The result will be the same as a ‘normal’ home setup- one phone line, and if you pick up while someone else is on the phone you are 3way’d in. Every phone connected to that FXS port will be part of that loop, so that set of phones can only make one call at a time. That may not be the best explanation, LMK if still unclear.

As for the rest of it I was comparing Asterisk to a legacy low-end phone system. On the legacy system, the extension IS the channel, so when you dial 10, the call is sent to port 10 and nothing else and that cannot be changed. Whatever phone is connected to port 10 will ring and this is the behavior you are stuck with.

With Asterisk, the extension IS NOT the channel. On Asterisk you CAN dial 10 and ring Ext14, on the legacy system you cannot. So in my example, you dial 10 and that rings the port on Zap/1, 11 rings a SIP phone, 12 rings Zap/4, 13 rings two phones, etc etc.

So if the dialplan makes sense to you, great :smile:. I am saying that what you dial is not necessarily the hardware destination of where the call goes, the extension is not the channel.

To put it differently- say you register 5 SIP phones as SIP/10 thru SIP/14. What I was trying to illustrate was that doing this does not automatically make dialing 10-14 ring the respective phone, adding a dialplan is required to make it work. Besides, you can do:

exten => 10,1,Dial(SIP/14)
exten => 11,1,Dial(SIP/10)
exten => 12,1,Dial(SIP/12)
exten => 13,1,Dial(SIP/11)
exten => 14,1,Dial(SIP/13)

Note that the extension dialed is different from the channel, just like above. I suspect that you already get this part and i may have screwed you up with constantly explaining it, but most * newbies have a very hard time with it, as they see it they just registered the phone as SIP/14 so dialing 14 should make it work.

Moving on-
Then with the dialplan you can also create behavior, like:

exten => 10,1,Dial(SIP/10,15) ; ring SIP/10 for 15sec
exten => 10,2,Dial(SIP/10&SIP/11,15) ; if nobody answers SIP/10 in 15sec, ring SIP/10 and SIP/11 both for another 15sec (basically just adds SIP/11 to ringing)
exten => 10,3,VoiceMail(10@default) ; if nobody still answers go to voicemail

note the priority changing- asterisk executes in priority order. Thus 10,1 comes before 10,2 and then 10,3…

am i doing okay or just confusing you more? :smile: