Advertisement
Guest User

Untitled

a guest
Feb 27th, 2015
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.64 KB | None | 0 0
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing,
  13. * software distributed under the License is distributed on an
  14. * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15. * KIND, either express or implied. See the License for the
  16. * specific language governing permissions and limitations
  17. * under the License.
  18. */
  19. var app = {
  20. // Application Constructor
  21. initialize: function() {
  22. this.bindEvents();
  23. },
  24. // Bind Event Listeners
  25. //
  26. // Bind any events that are required on startup. Common events are:
  27. // 'load', 'deviceready', 'offline', and 'online'.
  28. bindEvents: function() {
  29. document.addEventListener('deviceready', this.onDeviceReady, false);
  30. },
  31. // deviceready Event Handler
  32. //
  33. // The scope of 'this' is the event. In order to call the 'receivedEvent'
  34. // function, we must explicitly call 'app.receivedEvent(...);'
  35. onDeviceReady: function() {
  36. app.receivedEvent('deviceready');
  37. sip();
  38. },
  39. // Update DOM on a Received Event
  40. receivedEvent: function(id) {
  41. var parentElement = document.getElementById(id);
  42. var listeningElement = parentElement.querySelector('.listening');
  43. var receivedElement = parentElement.querySelector('.received');
  44.  
  45. listeningElement.setAttribute('style', 'display:none;');
  46. receivedElement.setAttribute('style', 'display:block;');
  47.  
  48. console.log('Received Event: ' + id);
  49. }
  50. };
  51.  
  52.  
  53. function sip() {
  54. var SIP = cordova.require("com.onsip.cordova.Sipjs");
  55. var PhoneRTCMediaHandler = cordova.require("com.onsip.cordova.SipjsMediaHandler")(SIP);
  56. var mediaOptions = {
  57. media : {
  58. constraints: {
  59. audio: true,
  60. video: true
  61. },
  62. render: {
  63. local: {
  64. video: document.getElementById('localVideo')
  65. },
  66. remote: {
  67. video: document.getElementById('remoteVideo')
  68. }
  69. }
  70. }
  71. };
  72.  
  73. window.ua = new SIP.UA({
  74. mediaHandlerFactory: PhoneRTCMediaHandler,
  75. uri: '1000@192.168.1.26',
  76. wsServers: ['ws://192.168.1.26:5066'],
  77. authorizationUser: '1000',
  78. password: '1234',
  79. traceSip: true,
  80. register: true,
  81. log: {
  82. builtinEnabled: true,
  83. level: 2
  84. }
  85. });
  86.  
  87.  
  88. window.ua.on('invite', function(_session) {
  89. if (window.session) {
  90. alert("Only one call at a time.");
  91. _session.reject();
  92. return;
  93. }
  94. window.session = _session;
  95. window.session.accept(mediaOptions);
  96. window.session.on('terminated', function () {window.session = null;});
  97.  
  98. });
  99.  
  100.  
  101. document.getElementById("makeCall").addEventListener("click", function() {
  102. if (window.session) {
  103. alert("Only one call at a time.");
  104. return;
  105. }
  106. window.session = window.ua.invite(document.getElementById('target').value, mediaOptions);
  107. window.session.on('terminated', function () {window.session = null;});
  108. });
  109. };
  110.  
  111. app.initialize();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement