Skip to main content

Creating your own GUI screens

Posted by gb_delti on Tue, 12/16/2008

Is it possible to add your own GUI screens to PBXManager? I would like to unify and simplify the creation of users together with the creation of a corresponding agent and adding them to a queue, all on one page. I am a seasoned web programmer and would like to know if the PBXManager has an API or a framework I can use. If there is an API or framework - is it documented?


Submitted by thirdlane on Tue, 12/16/2008 Permalink

Technically you can add your own screens and add them to the menu as custom links in System Settings -> Menu/Link Manager. That said, at the moment we don't have the API to the underlying functions that manipulate configuration files so you would end up having to do a fair amount of extra work.

I just wonder how much interest is there for us exposing some of the internals?

Submitted by justdave on Tue, 12/16/2008 Permalink

There's been times I've wanted to add features that wouldn't necessarily go back upstream (because they're related to something special we did inhouse), and this kind of thing would be useful for that.

Submitted by cbbs70a on Tue, 12/16/2008 Permalink

Alex;

Exposing some of the internals would be extremely valuable. I've rewritten a good percentage of the user portal and alot of the time was spent just trying to figure how something was done. This would save many hours of work.

FSD

Submitted by cbbs70a on Wed, 12/17/2008 Permalink

Matt;

I have no problem doing that. Just give me a couple days as I need to update the company website with newer screenshots anyway. The genius of the link manager has been extremely useful. I've added screens to both the PBX manager and the User Portal. I had to add to the PBX manager because I migrated to Asterisk Realtime Arch. Static for voicemail. In order to understand some of the internals of the manager and portal all I did was look at the source of the web page in the web browser. So far I've avoided uploading my work as I do not want to be confused with a real programmer. A couple of the things I have done are:

(1) Select Call Forwarding - similiar to the call forwarding page except for specific callerid's. allows for 20 entries. That is, you can input a phone number, a destination (no destination assumes voicemail) and right next to it select from a drop-down box and choose

call forward busy

call forward always

call forward on no answer (5 sec)

call forward on no answer (10 sec)

call forward on no answer (15 sec)

call forward on no answer (20 sec)

(2) Select Call Blocking - Similiar to the standard call blocking page except for specific callerid's. allows for 20 entries. The user can input a phone number and then select from a drop-down box and choose

Play "busy" to caller

Play "ringing" to caller then disconnect

Play "ringing" then go to voicemail

Send to voicemail immediately

(3) Custom CallerID - for incoming calls. Rewriting the callerid is especially useful for incoming calls from cellphones that usually does not have complete CID. Can rewrite both callerid(num) and callerid(name). allows for 20 entries

(4) Custom Voicemail Greetings - Based on callerid, the caller will hear a greeting specific to them before bypassing the standard vm greeting and being sent directly to vm.

(5) Do Not Disturb/Whitelist - Enhanced from the orignal, add a "whitelist" feature that will let callers on the whitelist bypass DND. Allows for 40 entries.

(6) Voicemail configuration - now with 2 dozen or so options, plus I migrated to ARA. The key to migrating to ARA without breaking anything is to have both these entries in extconfig.conf:

voicemail.conf => mysql,asterisk,voicemail

voicemail => mysql,asterisk,voicemail

Speed dial - 99 entries.

Regards;

Frank

Submitted by mattdarnell on Wed, 12/24/2008 Permalink

Frank,

Those look great. You really did a great job. I like how you broke up CF & FMFM. You seem to have exposed a lot of great voicemail functionality.

Is the speed dial functionality native in asterisk or did you code some custom dialplan? I really like that.

Do you let users connect directly to your box with the manager or do you use a manager proxy? I have having to allow all private IP addresses as the communication is in clear text. I think you need the for the screen pops and conference manager.

Happy Holidays,

Matt

Submitted by moshe on Wed, 12/31/2008 Permalink

hi

your stuff looks great, I'm kind of new to asterisk/third lane but i have a couple of ideas some more and/or different modifications,

since I’m new to this i would like to ask you where and how these modifications are done, or if you are ready to share them

thanks

Submitted by cbbs70a on Tue, 01/20/2009 Permalink

Since Alex has developed the link manager to do our own custom GUI mods, I think it should be ok to talk about the product this way.

At the core of it, regardless of programming language, it all boils down to CGI. Although other lanaguages like PHP and javascript would make life many times easier, I am going strictly with PERL because its what I know, although dynamically creating web pages with PERL can sometimes be a bitch.

Much (but not all) of what is done is reading, changing, and writing configuration options. The options are usually kept in either in (1) the Astdb, (2) asterisk config files in /etc/asterisk,

(3) Thirdlane config files in /etc/asterisk such as users.txt, and (4) webmin config files such as /etc/webmin/config and /etc/webmin/asterisk/$extension.cfg.

Essentially, create your custom web page any way you'd like and do the config read/modify/write

in the backend CGI scripts. Then use the link manager and add the page accordingly. If necessary, remove access to the old page for the users if the new page is replacing an original one.

Thats about it in a nutshell. If there is more interest in knowing some more about the internals of the system, I suppose that I can publish some of my notes, but IF AND ONLY IF ALEX SAYS ITS OK WITH HIM. There is probably a line somewhere that I should not cross and I should be careful about that.

Regards;

FSD

Submitted by thirdlane on Tue, 01/20/2009 Permalink

Hi Frank,

I appreciate your input and contributions - let's talk about the best way to go forward. It would be great if we could coordinate some of the work and add components and modules to Thirdlane.

I will be in touch - feel free to call me.

Best regards,

Alex