-
Notifications
You must be signed in to change notification settings - Fork 788
Subscribe support #711
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Subscribe support #711
Conversation
… subscribe_support
… subscribe_support
|
Hi @ikq, JsSIP code must have the same style in order to make it readable and maintainable. Comments before making a deeper review:
Please take a certain file (ie: RTCSession.js) as a reference and try to stick to its style. |
… subscribe_support
|
Thanks for the cleanup, 👍 We'll review the PR as we can. |
|
@jmillan Would it be possible to review again? Thanks! |
|
Kind reminder |
|
Up! |
|
Hello. We also want to use this feature. Will this pull request be merged? |
|
This is waiting for the docs to be generated. @ikq are you willing to create a PR for the doc? We cannot merge the feature without it. |
|
Writing documentation is never easy for me but let's try. How do you do this? I have to download the zip (or git clone) from https://github.com/versatica/jssip.net, install nanoc and modify content/documentation/api/ua.html And then check the result using nanoc compile, nanoc view? If the modified doc compiled, make Pull Request of https://github.com/versatica/jssip.net with modified api/ua.html, Do I understand correctly ? |
|
I created pull request for https://github.com/versatica/jssip.net |
|
@jmillan Hello! Could you please check it up? Thank you! |
|
I'll review when I can. If you are in a hurry, please do use this branch freely. |
This way you will also collaborate on using, testing and reporting. |
|
@jmillan We already using it this way :) but it's a bit difficult to maintain separate branch. |
|
I'm not forgetting about this..., |
|
@jmillan Hello! Any chance you had time to review this one? |
|
@jmillan Ping? |
|
For those willing to use this feature I would suggest you use this branch. I don't have at the moment the resources to re-check and merge this, so please, do use this branch for the time being. |
|
Looking forward with this merge also 👍 |
|
@jmillan ping? |
|
Pushed a rebased version in #922. |
| * @param {String} body Notify body | ||
| * @param {Array<string>} extraHeaders | ||
| */ | ||
| _notify(subsStateParameters, body=null, extraHeaders=null) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
private methods must appear after all public ones. Also, this could be called _sendNotify() also to dissambiguate.
| /** | ||
| * Private API | ||
| */ | ||
| _dialogTerminated(termination_code) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think terminate() would be a better name for this, as it is what the method does. RTCSession has the same name for such function.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see terminate() is already taken, then terminateDialog() would work.
|
@ikq thanks for the patience. I'll try 🤞 to finish the review and accept it in the following weeks. Can I ask you to not include any change in |
| registrar_server : null, | ||
| register : true, | ||
| register_expires : 600, | ||
| register_from_tag_trail : '', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything related to register_from_tag_trail does not belong to this PR. It's already in master. Please remove it.
| register_from_tag_trail(register_from_tag_trail) | ||
| { | ||
| if (typeof register_from_tag_trail === 'function') | ||
| { | ||
| return register_from_tag_trail; | ||
| } | ||
|
|
||
| return String(register_from_tag_trail); | ||
| }, | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
to be removed.
| let fromTag = Utils.newTag(); | ||
|
|
||
| if (this._ua.configuration.register_from_tag_trail) | ||
| { | ||
| if (typeof this._ua.configuration.register_from_tag_trail === 'function') | ||
| { | ||
| fromTag += this._ua.configuration.register_from_tag_trail(); | ||
| } | ||
| else | ||
| { | ||
| fromTag += this._ua.configuration.register_from_tag_trail; | ||
| } | ||
| } | ||
|
|
||
| const request = new SIPMessage.OutgoingRequest( | ||
| JsSIP_C.REGISTER, this._registrar, this._ua, { | ||
| 'to_uri' : this._to_uri, | ||
| 'call_id' : this._call_id, | ||
| 'cseq' : (this._cseq += 1) | ||
| 'to_uri' : this._to_uri, | ||
| 'call_id' : this._call_id, | ||
| 'cseq' : (this._cseq += 1), | ||
| 'from_tag' : fromTag |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
to be removed.
| ha1?: string; | ||
| register?: boolean; | ||
| register_expires?: number; | ||
| register_from_tag_trail?: string | function() : string; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
to be removed.
|
Also please do not edit |
| if (finished) | ||
| { | ||
| return; | ||
| } | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change does not belong to this PR. It's already in master. Please remove.
| } | ||
|
|
||
| else if (!finished) | ||
| else |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change already in master, please remove.
| connection.addEventListener('icegatheringstatechange', iceGatheringStateListener = () => | ||
| { | ||
| if ((connection.iceGatheringState === 'complete') && !finished) | ||
| if (connection.iceGatheringState === 'complete') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change already in master, please remove.
| /** | ||
| * Get dialog state. | ||
| */ | ||
| get state() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Getters are set after constructor. Please check RTCSession.js
I added Subscriber.js Notifier.js to JsSIP
I tried write them according JsSIP style and lint errors.
Please take a look and let me know what needs to be fixed.
I already see that *.d.ts files are missing.
The work still in progress: I want add to SUBSCRIBE Contact +sip.instance
as you do in REGISTER