Skip to content
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

Add TLS capabilities #100

Merged
merged 36 commits into from
May 8, 2023
Merged

Add TLS capabilities #100

merged 36 commits into from
May 8, 2023

Conversation

tayler6000
Copy link
Owner

No description provided.

tayler6000 and others added 30 commits October 1, 2022 17:24
…age.py

[ADD] Added helpers.py
[ADD] Added sock.py
[ADD] Added SIPParseError if TO/FROM regex doesn't match.
[ADD] Added checks arround SSL functions in case OpenSSL doesn't exist.
[FIX] Added back changes that were lost in the merge into this branch.
[FIX] Fixed some typing issues.
[CHANGE] Changed TLS settings.
[CHANGE] Changed listen to _listen in VoIPSocket.
…ssword. Closes #26

[CHANGE] Removed username and password args in VoIPPhone and SIPClient.  Replaced them with the user arg for the actual user/phone number and credentials_manager which stores the username and password for authentication.
[ADD] Added support for new Digest Authorization (RFC 7616).
[ADD] Added support for SHA-256, SHA-512-256, and session digest algorithms.
[ADD] Added support for Basic Authorization (RFC 7617 & 2617 Section 2).
[CHANGE] Changed gen_authorization to gen_digest.
[CHANGE] Authorization is no longer formatted in different gen functions.  gen_authorization now returns a complete Authorization header.
[CHANGE] All references to UDP now reflect the transport_mode.
[ADD] Added special parsing on qop and userhash in authorizaitn.
[ADD] Added ALLOW_BASIC_AUTH global, set to False by default.
[ADD] Added ALLOW_MD5_AUTH global, set to True by default.
[FIX] Fixed auth regex to allow quoted strings with commas.
[ADD] Added more types for pyVoIP.sock.
[CHANGE] Changed functionality of pyVoIP.sock
[ADD] Added more SIP tests.
[ADD] Added type alias file.
[FIX] Fixed error calling.
[FIX] Fixed regex errors.
[ADD] Added missing typing.
[ADD] Added ALLOW_TLS_FALLBACK global.
[ADD} Added an additional test.
[REMOVE] Removed support for missing SSL module.
[MOVE] Moved sock module to pyVoIP.sock, split TransportMode and VoIPSocket.
[CHANGE] Changed required python version to 3.8.
[FIX] Fixed To/From/Contact regex matching to match without a username.
[ADD] Added new test.
[CHANGE] Changed all sendto's to either the Via or Contact.
[CHANGE] SIPMessage Contact headers now parses like a To/From header.
[CHANGE] SIPMessage Via headers' address tuple's port is now an int.
Ran black.
pyVoIP is now able to receive direct IP calls (P2P) #60
[FIX] Fixed missing recvLock.release() in invite.
Fixed #94

Co-authored-by: SEIDO-JP <[email protected]>
[FIX] Fixed gen_register always generating a new Call-ID, which broke some PBXs that required auth.
Fixed #74

Co-authored-by: hartwigt <[email protected]>
[FIX] Fixed flake8 settings in tox file.
[FIX] Fixed errors in Authorization header generation.
[FIX] Fixed error in pyproject.
[CHANGE] Changing VoIPSocket to serve more as a receive listener.
[ADD] Adding basic sqlite3 table in memory to help routing incoming packets on UDP.
[ADD] Added --check-functionality and --check-func to pytest to make pyVoIP actually connect to an asterisk server.
…rkers.

[CHANGE] Changed functionality tests to use new VoIPPhone.
[FIX] Fixed SIPClient sento.
[FIX] Fixed SIPClient _gen_user_agent.
[FIX] Fixed VoIPPhone default transport_mode.
[FIX] Fixed flake8 issues.
[FIX] Skipped currently not working tests.
tayler6000 added 2 commits May 6, 2023 16:14
[ADD] Added 7 tests for SIPMessage parsing requests.
[CHANGE] Refactored SIPMessageType.MESSAGE to SIPMessageType.REQUEST.
[CHANGE] Changed check in CSeq header to be an int instead of string.
[CHANGE] Inexplicitly defined headers in requests and responses are now int casted, and will default to string if a ValueError is raised.
[CHANGE] Call-ID is not explicitly defined to be a string even if it happens to be a number.
[FIX] Fixed missing \r\n in SUBSCRIBE and MESSAGE.
[FIX] Fixed broken To and From in MESSAGE.
@tayler6000 tayler6000 linked an issue May 7, 2023 that may be closed by this pull request
tayler6000 added 3 commits May 7, 2023 05:36
[ADD] Added To/From/Contact dictionary type to pyVoIP/types.
[ADD] Added __get_tfc_header to SIP/client.
[ADD] Added 	o attribute to SIP requests to get the addr from the top line, it is populated with __get_tfc_header.
[ADD] Added int casting attempt to Via header attributes.
[ADD] Added lots of docstrings to pyVoIP/sock.
[ADD] Added functionality to VoIPConnection and VoIPSocket.
[ADD] Added 7 new tests for SIP request 	o attribute.
[ADD] Added 5 new Via header tests.
[CHANGE] Changed pytest workflow to expose port 5061 on dockerfile.
[CHANGE] Changed docker start.bat to expose port 5061.
[CHANGE] Removed recvLock.
[CHANGE] Migrated from socket.socket to VoIPSocket.  (Currently only register and deregister migrated)
[CHANGE] Changed heading attribute in SIP messages from bytes to list[str].
[CHANGE] Changed SIP message summary to use raw heading.
[CHANGE] Changed SIP header parsing for To/From/Contact to use __get_tfc_header.
[FIX] Fixed TCP registration tests.
[REMOVE] Removed self.out from SIP/client.py
[REMOVE] Temporarily removed timeouts from register and deregister. The previous method would catch keyboard interrupts causing a bad debugging experience. It is also likely incompatible with VoIPSocket.
[ADD] Added TLS tests.
[ADD] Added TLS options in pyVoIP/__init__.py, namely set_tls_security
@tayler6000 tayler6000 marked this pull request as ready for review May 8, 2023 04:12
@tayler6000 tayler6000 merged commit ccf67d6 into development May 8, 2023
@tayler6000 tayler6000 deleted the feature/Add-TLS branch May 27, 2023 09:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

TLS support
1 participant