Advertisement
Guest User

Untitled

a guest
Oct 9th, 2017
437
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.56 KB | None | 0 0
  1. var globalSIPml = {
  2. sipStack: {},
  3. config: {},
  4. can_call: false,
  5. //SESSION
  6. sipStackSessionEventsListener: function (e) {
  7. console.info('sipStackSessionEvent: ' + e.type);
  8. var self = this;
  9. if (e.type == 'connected' && e.session == self.registerSession) {
  10. console.log('соединение установлено');
  11. self.can_call = true;
  12. }
  13. },
  14. //STACK
  15. sipStackEventsListener: function (e) {
  16. var self = this;
  17. console.log(e.type);
  18.  
  19. if (e.type == 'started') {
  20. self.login();
  21. } else if (e.type == 'i_new_call') { // incoming audio/video call
  22. //событие входящего звонка
  23. self.acceptCall(e);
  24. }
  25. },
  26. login: function () {
  27. var self = this;
  28. self.registerSession = self.sipStack.newSession('register', {
  29. events_listener: {
  30. events: '*',
  31. listener: self.sipStackSessionEventsListener.bind(this)
  32. }
  33. });
  34. self.registerSession.register();
  35. },
  36.  
  37. /* CALLS BEGIN*/
  38. callSession: {},
  39. callEventsListener: function (e) {
  40. console.log(e.type);
  41. //здесь находятся события по звонку
  42. },
  43. acceptCall: function (e) {
  44. e.newSession.accept();
  45. },
  46. makeCall: function (number) {
  47. console.log(number);
  48. var self = this;
  49. self.callSession = self.sipStack.newSession('call-audio', {
  50. audio_remote: document.getElementById('audio-remote'),
  51. events_listener: {events: '*', listener: self.callEventsListener} // optional: '*' means all events
  52. });
  53. self.callSession.call(number);
  54. },
  55. /* CALLS end */
  56.  
  57. init: function () {
  58. var self = this;
  59. //1. Init engine
  60. SIPml.setDebugLevel('errors');
  61.  
  62. self.config = {
  63. realm: '',//website: pbx.domain.com
  64. impi: '',//inner-indentificator: 100-999
  65. impu: '',//sip-user: sip:inner-identificator@domain.com
  66. password: '',//password: md5/sha
  67. display_name: '',//BATMAN
  68. websocket_proxy_url: '',//websoket url: wss://domain
  69. enable_rtcweb_breaker: true,
  70. enable_early_ims: false,
  71. enable_media_stream_cache: true,
  72. ice_servers: [{url: 'stun:stun.l.google.com:19302'}], //
  73. bandwidth: null,
  74. //events_listener: { events: '*', listener: onSipEventStack },
  75. video_size: null,
  76. //outbound_proxy_url: 'udp://192.168.0.12:5060', // optional
  77. events_listener: {events: '*', listener: self.sipStackEventsListener.bind(this)}, //optional
  78. sip_headers: [ //optional
  79. {name: 'User-Agent', value: 'IM-client/OMA1.0 sipML5-v1.0.89.0'},
  80. {name: 'Organization', value: 'Doubango Telecom'}
  81. ]
  82. };
  83. SIPml.init(
  84. function () {
  85. self.sipStack = new SIPml.Stack(self.config);
  86. self.sipStack.start();
  87. },
  88. function () {
  89. console.error('Ошибка инициализации движка: ' + e.message);
  90. }
  91. );
  92.  
  93. }
  94. };
  95. globalSIPml.init();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement