An XML application can be triggered in various ways.
The simplest way of triggering a Minibrowser page on the phone is to assign the page to a function key using the Action URL key type.
Follow the next steps to assign the page to a function key:
For the key you want to change:
Pressing the selected key now launches the Minibrowser. In case your application is not triggered as expected check the troubleshooting section.
Using the Action URL feature the phone can trigger an HTTP request when a specific event occurs on the phone:
You can enter the Minibrowser URL to be launched for each specific event and click "Apply". In this case the page is launched whenever the event occurs. E.g. if you provide http://someurl/somepage.xml in the DND on field, each time you enable the DND feature on the phone this URL will be called.
Action URLs do not necessarily need to show up on the phone. If you point to a URL which does not return an XML body in its 200 Ok response then the phone will not display anything.
Sometimes it is required to provide additional information in the URL (for example, the Caller ID for an incoming call, the MAC address of the phone or the value of a specific setting).
Runtime variables are filled in at the time when the event was triggered. See Action URLs for a list of the available variables.
Inserting setting values
In some cases you would like to access current setting values in the scripts generating your content. In these cases you can just use the setting name prepended by a $-sign.
In the Minibrowser XMLs this is probably not needed because you can use the set callback to access setting values without passing them in the URL.
Due to security constraints, passwords and password-like settings cannot be referenced using this method.
Another commonly used way to trigger the minibrowser is to use HTTP GET requests to the phone page called minibrowser.htm.
When using URL parameters, the following details are important:
needs to be encoded like this:
Here you can find more information about the "percent encoding". This website provides a free encoder / decoder
An XML application can be also sent to the phone via a SIP request.
This requires some setup on the phone. Please configure the following settings:
|xml_notify||on||This setting is required to enable this feature|
|filter_registrar||off||This setting should be off in case you are sending the request from an IP different that your PBX|
|network_id_port||5060||This setting is needed if you don't know the ephemeral port used for SIP by the phone|
|offer_gruu||off||This setting can stay on if you are sending the request from the PBX and the PBX supports GRUU|
|user_sipusername_as_line||off||This setting can stay on if you are sending the request from the PBX and the PBX sends the request to the full SIP URI from the Contact header sent by the phone (including the line=parameter)|
In order to send the SIP request you can use various tools such as sipsack, SIPPing or sipp.
The Content-Length header of the NOTIFY must have the correct value and the headers:
are mandatory for this feature
Assuming we use the workstation at IP address 10.0.5.30 to send XML content to a snom375 phone at 10.0.5.174 which has identity 440 registered:
NOTIFY sip:10.0.0.174:5060 SIP/2.0 Via: SIP/2.0/UDP 10.0.5.30:1036 From: <sip:email@example.com>;tag=2502 To: <sip:firstname.lastname@example.org>;tag=2502 Call-ID: fakeCall-ID@me CSeq: 1 NOTIFY Max-Forwards: 70 Event: xml Subscription-State: active;expires=30000 Content-Type: application/snomxml Content-Length: 317 <SnomIPPhoneDirectory> <Title>Menutitle</Title> <Prompt>Prompt</Prompt> <DirectoryEntry> <Name>John</Name> <Telephone>123456789</Telephone> </DirectoryEntry> <DirectoryEntry> <Name>Doe</Name> <Telephone>987654321</Telephone> </DirectoryEntry> </SnomIPPhoneDirectory>
Many of the phone menus in software version 10.x are generated on Minibrowser XML files. It is possible to edit/replace these XML files by your own application and then open them using the phone user interface. For more information on achieving this, see Phone menu customization .