Developer Friendliness

Discussion in '3CX Phone System - General' started by Psychlist1972, Aug 20, 2007.

Thread Status:
Not open for further replies.
  1. Psychlist1972

    Joined:
    Aug 20, 2007
    Messages:
    27
    Likes Received:
    0
    (I'm pulling this out to a separate thread.)

    What type of support does the 3CX PBX have for add-ins or developer scripts/integration?

    I know that quite a bit would be handled by regular old softphone-type programming. However, I'd like to be able to do things like get at the voice messages from a PC client on the network (read/delete etc.), programmatically update the address book etc. Is there an API or set of services I can call?

    I use .NET (C#, primarily), but can deal with pretty much whatever type of API is exposed.

    Thanks.

    Pete
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  2. gbarnes

    Joined:
    Aug 3, 2007
    Messages:
    83
    Likes Received:
    0
    Api

    Hi psych...

    Ive waited for the API, but have delved in and found a LOT is done using PHP scripting, and with a little effort most things can be done with them.

    Ive added new pages to the menu, to show voicemails to each extension (and play etc) and working on deleting them (using the sql interfaces)

    Changed voicemail 'hotkeys' from * to 1 etc, to work with my phones.

    Watch for the templates though, these delete the original files.

    Have a backup session, then PLAY! Its exciting.
     
  3. archie

    archie Well-Known Member
    3CX Support

    Joined:
    Aug 18, 2006
    Messages:
    1,299
    Likes Received:
    0
    We do not believe that any kind of API will attract more paying customers. The point is that people buying software expect it to work out of box, without necessity to fiddle with scripts, hand-made addons, etc. For example, I'm using MSVS, FireFox, and other soft, and, even being programmer, not trying to adjust them with scripts. Moreover, if I had to - I would quit that soft. So, maximum appropriate and appealing level of customization for 99.999% of users is to tick check-box or radio button.
    Though, we're not trying to hide anything. Yes, you can try to adjust PHP codes, they are opened, you can connect to database, you even can make codec module for Media Server. But PBX core module has no API and we're not going to make it - it doesn't worth of efforts.
    Nevertheless, we're considering to implement CSTA service API (SIP or XML based). It will not appear in Version 4 though, but it is real, and may appear in some future versions. Given that you will be able to control almost all aspects of PBX with your own call control module.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  4. Anonymous

    Anonymous Guest

    Mate the API is VERY important to a lot of my customers here in AU. (but we discussed this).

    That is the reason why they are waiting with purchase of the 3cx software, it is all API dependant.
     
  5. archie

    archie Well-Known Member
    3CX Support

    Joined:
    Aug 18, 2006
    Messages:
    1,299
    Likes Received:
    0
    Henk, mate, in turn you've promised to find out details about how they want that API to be done :) And, if it is reasonable, we'll provide such API. See, I just can not do "some API". I can do "specific API"
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  6. Anonymous

    Anonymous Guest

    I know I know.

    I promised to write the specifications and I will. I have not had the time to meet with the customer as such. It is on the list to do (bloody thing gets longer and longer).

    Some people I helped here in AU, with their configs, the pre-sales type stuff, have left the planet by the looks of it. So I might have some time in the next 3 weeks or so.

    Sorry Archie, Ill have to catch up with you tomorrow avo so we can have our "virtual" friday afternoon booze up (LOL).
     
  7. archie

    archie Well-Known Member
    3CX Support

    Joined:
    Aug 18, 2006
    Messages:
    1,299
    Likes Received:
    0
    Anyway, design of Version 4 is based on CSTA-style. I'm not telling it completely complies, but i'm trying to make it CSTA-ready. So it is only question of time to implement CSTA interface API.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  8. Anonymous

    Anonymous Guest

    Hold a sec Gringo :) are you trying to sell us a car with 3 wheels?????

    That ain't gonna fly (LOL).
     
  9. archie

    archie Well-Known Member
    3CX Support

    Joined:
    Aug 18, 2006
    Messages:
    1,299
    Likes Received:
    0
    There's a difference between "design" and "exterior". Main goal now is to make such design that wouldn't contradict CSTA ideology. Than one can make interface to internals, and that task is as much easy as internals are close to desired architecture :)
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  10. Nick Galea

    Nick Galea Site Admin

    Joined:
    Jun 6, 2006
    Messages:
    1,889
    Likes Received:
    190
    We have a web based API in the works which should be available with documentation for version 4. It will allow such things as getting queue status, placing and transferring calls and so on.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  11. telis

    telis New Member

    Joined:
    Aug 13, 2007
    Messages:
    148
    Likes Received:
    21
    API comment (Long Post!)

    Hi,

    This is a great product. Especially the Exchange Integration, perfect for Microsoft Small Business Server 2008 customers, when it arrives.

    I think you should definitely have an API or set of APIs as an ambition, and I also think it will get you more paying customers. But maybe I'm wrong; however it would certainly get us more customers as a reseller. Maybe it shouldn't be top priority first off; call handling is definitely priority number one at the moment for me. Wasn't their some talk of TAPI support? It's a lousy API but at least it's standard. The trouble is no one ever implements all of it. I've also looked at CSTA, which I hadn’t heard of, it’s a bit dense, it would be great if you could write some good docs for this if this is the way you go. You could just write your own API specification and just keep it simple and elegant.

    One of the great benefits of the PC environment over the proprietary systems like Nortel, Avaya etc. is that it is (or can be) more open. The trouble with the ultimate openness of open source is that it just isn't easy enough to use. In open source there is no real API, there's no line between the inside of the system and the outside of the system, you can just hack in at any level. What would be nice in 3CX sip server is a clean well documented API we can use to interact with the system, not fiddle internally with how it works, or produce some horrible hybrid hack. I take the point that the software should be designed to work well without people having to fiddle with it, but a good API does not fiddle, it is an interface every bit as designed as the Human Interface.

    This is what the APIs should be for IMHO.

    1. Call control/monitoring per user

    It should be possible for API users to program an application that sits on a user’s desktop and can control their handset. Much like 3CX Call Assistant or Avaya IP Office Phone Manager does, but customised to the specific application. The API can then be used to integrate with CRM systems so that for example whenever you answer a call a list of possible contacts appears (using the CLI) so you can more easily write and file an attendance note for the call. It would be even better if the call could be recorded and added to the customer record as well. What about customers being dialled by clicking a button in the application? If the operative can see what the busy or away status of others in the organisation from his or her LOB application then, when a customer service call becomes a support call, they can transfer the call to the individual who can best help. Extension status reporting is not well suited to a SOAP method, to get a busy lamp field you might be better off with a network broadcast. Or maybe not. Out of interest how does the call assistant do it?

    2. Call control/monitoring for whole system

    This is less important, but still great to have. It should be possible for the system to do things to calls system wide. When a call comes in an event can be fired. Then using the API we can do things like ask for the customer’s account number and store it against the call, presenting it to the operative when they answer. Or what about looking the CLI up in a database and displaying the customer’s name against the call, so that it appears on the hard phones and on the Call Assistant (or replacement). How about looking up the caller on the database and trying first to connect them to the last person they spoke to, before falling back to the hunt group. All things you could do with an API, with a handful of methods.

    3. Call recording and logging

    If you record call and/or log calls you need some means of accessing the recordings and call records. Call recordings could be bundled off into a directory with their filename organised according to schema. Better they could be named with GUIDs and call records could contain 'links' to them. The call records need some form of API. You could get them with SOAP calls, or with ODBC, they could be stored in CSV files in a nominated location (they are with most systems, as so called CDRs which is a not very standardised format), or maybe XML files. Once you have access to them through some sort of API (even if the API is just a file path, CSV schema and file naming schema) they can manipulated to see how soon call are being answered, which operative is answering the most calls etc. by custom or boxed software.

    I do not think there is any need for a configuration API. In fact I think you're better off without one. That crosses the line.

    I use .NET as well BTW. I hope these are good ideas and I'm not just being annoying...

    Chris.
     
  12. silentfun

    silentfun Member

    Joined:
    Dec 11, 2006
    Messages:
    364
    Likes Received:
    0
    i read this now and just want to ask : is the some documentation more the the makecall.php ?
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  13. Nick Galea

    Nick Galea Site Admin

    Joined:
    Jun 6, 2006
    Messages:
    1,889
    Likes Received:
    190
    We have an HTTP post that you can make to trigger a call. does that help (its in our FAQs)

    Let us know what other function calls you would need
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  14. silentfun

    silentfun Member

    Joined:
    Dec 11, 2006
    Messages:
    364
    Likes Received:
    0
    allready posted this to Feature requests

    http://www.3cx.com/forums/categorie...he-makecall-php-your-suggestions-please-3786/

    i personal would prefer a 3cx service like makecall.php that give information about lines or extensions to a cms system.

    for example the cms can request someting like this:

    callinfo.php?ext=100&pass=8888&requestsubject=100&requestdetail=1

    ext=100 (requesting user)
    pass=8888 (pass of the requesting user)possible voice pin

    i suggest the requesting user can only ask for his own info
    and if you use 99 or Admin name and admin pass you get all info you want.

    requestsubject=100 (the line where the requester want info about) for example ext 100 or line 10000 or queue 800 or ringgroup 820

    requestdetail=1 (optional parameter as infofilter if there is no filter all info will be provided)
    01= call type ( incomming / outgoing / fax / ect.
    02= caller id
    04= line where the call comes from or goes to
    08= outboundrule used
    16= datetime when the call started / duration of the call
    32= ect.

    if someone need more then one of the info above he can add 01+04+16=21 as requestdetail

    this would be nice for all those don´t want to interoperate direct with the database and it would be transparent for updates by 3cx they do to database.

    the answer of the 3cx pbx would best in xml


    Andy
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  15. AldoLinares

    AldoLinares New Member

    Joined:
    Nov 12, 2007
    Messages:
    135
    Likes Received:
    0
    With the make_call.php we where able to add it to a client managment software from one client it was very helpfull, its there any other things that you can do?

    Thanks
     
  16. silentfun

    silentfun Member

    Joined:
    Dec 11, 2006
    Messages:
    364
    Likes Received:
    0
    we have done a call me back button with it on our main page.

    but be aware it will not log the calls in the call logs so no billing and no call tracking atm

    Andy
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  17. EDCMike

    Joined:
    Jan 15, 2008
    Messages:
    9
    Likes Received:
    0
    Any updates for this post ? We are wondering about any Developer APIs, scripts, documentation, anything that is available to us ? I'd just like to know one way or the other.

    Thanks,

    Mike Shelton
     
Thread Status:
Not open for further replies.