13
13
var hostname = gPrefs.getCharPref("extensions.asterisk.host");
14
14
var port = gPrefs.getCharPref("extensions.asterisk.port");
16
var gPrefsListener = null;
16
18
/******************************************************************************/
18
20
/******************************************************************************/
37
39
if( window.getBrowser ) window.getBrowser().addEventListener("load", load, true);
40
//window.addEventListener("load", load, true);
40
43
/******************************************************************************/
42
45
/******************************************************************************/
47
function PrefListener(branchName, func)
49
var prefService = Components.classes["@mozilla.org/preferences-service;1"]
50
.getService(Components.interfaces.nsIPrefService);
51
var branch = prefService.getBranch(branchName);
52
branch.QueryInterface(Components.interfaces.nsIPrefBranch2);
54
this.register = function()
56
branch.addObserver("", this, false);
57
branch.getChildList("", { })
58
.forEach(function (name) { func(branch, name); });
61
this.unregister = function unregister()
64
branch.removeObserver("", this);
67
this.observe = function(subject, topic, data)
69
if (topic == "nsPref:changed")
44
74
// auto-migration function
45
75
function updatePrefs()
104
document.getElementById("asterisk-ext-status-icon").setAttribute("hidden",
105
!gPrefs.getBoolPref("extensions.asterisk.statusicon") );
106
document.getElementById("asterisk-ext-status-textbox").setAttribute("hidden",
107
!gPrefs.getBoolPref("extensions.asterisk.statustextbox") );
110
gPrefsListener = new PrefListener("extensions.asterisk.",
111
function(branch, name)
116
document.getElementById("asterisk-ext-status-icon").setAttribute("hidden", !branch.getBoolPref(name));
118
case "statustextbox":
119
document.getElementById("asterisk-ext-status-textbox").setAttribute("hidden", !branch.getBoolPref(name));
123
gPrefsListener.register();
74
125
var parsedocument = gPrefs.getBoolPref("extensions.asterisk.parsedocument");
75
126
if( !parsedocument )
127
178
if( number.length > 0 )
129
180
document.getElementById("context-asterisk").label = getStringBundle().getString("menu_call")+" "+number;
181
document.getElementById("context-asterisk").value = number;
130
182
document.getElementById("context-asterisk-edit").label = getStringBundle().getString("menu_editcall")+" "+number;
183
document.getElementById("context-asterisk-edit").value = number;
131
184
document.getElementById("context-asterisk").hidden = false;
132
185
document.getElementById("context-asterisk-edit").hidden = false;
162
221
function onStatusBarContextMenu(event)
223
var skipclipboard = false;
224
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);
227
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
230
trans.addDataFlavor("text/unicode");
231
clip.getData(trans,clip.kGlobalClipboard);
232
var str=new Object();
233
var strLength=new Object();
236
trans.getTransferData("text/unicode",str,strLength);
240
skipclipboard = true;
244
str=str.value.QueryInterface(Components.interfaces.nsISupportsString);
245
// ""+str needed to convert this into a string object
246
var number = cleanPhoneNumber(""+str);
247
if( number.length > 0 )
249
document.getElementById("asterisk-ext-call-menuitem").label = getStringBundle().getString("menu_call")+" "+number;
250
document.getElementById("asterisk-ext-call-menuitem").value = number;
251
document.getElementById("asterisk-ext-call-menuitem").hidden = false;
255
skipclipboard = true;
256
document.getElementById("asterisk-ext-call-menuitem").hidden = true;
262
skipclipboard = true;
267
skipclipboard = true;
272
var selection = getBrowserSelection();
273
//alert("calling context with: "+selection);
276
var number = cleanPhoneNumber(selection);
277
if( number.length > 0 )
279
document.getElementById("asterisk-ext-call-menuitem").label = getStringBundle().getString("menu_call")+" "+number;
280
document.getElementById("asterisk-ext-call-menuitem").value = number;
281
document.getElementById("asterisk-ext-call-menuitem").hidden = false;
285
document.getElementById("asterisk-ext-call-menuitem").hidden = true;
290
document.getElementById("asterisk-ext-call-menuitem").hidden = true;
164
295
if( gManager.requireConnection() )
166
297
if ( gManager.isConnected() )
234
365
function dial(phonenumber)
367
gConsoleService.logStringMessage("trying to call:"+phonenumber);
368
if( phonenumber.length == 0 ) return;
369
var prefix = gPrefs.getCharPref("extensions.asterisk.prefix");
236
370
var host = gPrefs.getCharPref("extensions.asterisk.host");
237
var port = gPrefs.getCharPref("extensions.asterisk.port");
238
var username = gPrefs.getCharPref("extensions.asterisk.username");
239
var password = gPrefs.getCharPref("extensions.asterisk.password");
240
var context = gPrefs.getCharPref("extensions.asterisk.context");
241
// var priority = gPrefs.getCharPref("extensions.asterisk.priority");
242
var channel = gPrefs.getCharPref("extensions.asterisk.channel");
243
var extension = gPrefs.getCharPref("extensions.asterisk.extension");
244
// var callerid = gPrefs.getCharPref("extensions.asterisk.callerid");
247
// var host = "pabx.acipia.local";
248
// var port = "5038";
249
// var username = "test";
250
// var password = "testsecret";
251
// var context = "internal";
253
// var channel = "SIP/211";
254
var callerid = phonenumber;
255
// var phonenumber = "213";
371
var port = gPrefs.getCharPref("extensions.asterisk.port");
372
var username = gPrefs.getCharPref("extensions.asterisk.username");
373
var password = gPrefs.getCharPref("extensions.asterisk.password");
374
var context = gPrefs.getCharPref("extensions.asterisk.context");
375
var channel = gPrefs.getCharPref("extensions.asterisk.channel");
376
var extension = gPrefs.getCharPref("extensions.asterisk.extension");
379
var callerid = phonenumber;
257
381
var logoff = function() {
258
382
gManager.logoff();
261
385
var originate = function() {
262
gManager.originate(channel+"/"+extension, phonenumber, context, logoff);
386
gManager.originate(channel+"/"+extension, prefix+phonenumber, context, logoff);
265
389
gManager.login(username, password, originate);
270
394
function confirmDial(number)
272
if( confirm(getStringBundle().getString("menu_call")+" "+number+" ?") )
396
if( number.length == 0 ) return;
397
var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
398
.getService(Components.interfaces.nsIPromptService);
399
var result = prompts.confirm(window, "Asterisk Click2Dial", getStringBundle().getString("menu_call")+" "+number+" ?");
278
406
function editConfirmDial(number)
280
if( result = prompt(getStringBundle().getString("menu_call")+" ", number) )
408
if( number.length == 0 ) return;
409
var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
410
.getService(Components.interfaces.nsIPromptService);
411
var input = {value: number};
412
var check = {value: false};
413
result = prompts.prompt(window, "Asterisk Click2Dial", getStringBundle().getString("menu_call")+" ", input, null, check);