Skip to content

Commit b48b905

Browse files
committed
Release v0.7.0: Complete vCon 0.3.0 specification compliance
- Added full vCon 0.3.0 specification support - Enhanced party fields (sip, did, jCard, timezone) - Added party history event tracking - Implemented disposition values for incomplete dialogs - Enhanced media type validation - Added civic address support (GEOPRIV) - Updated all documentation - 149 tests passing with comprehensive coverage - Maintains full backward compatibility
1 parent 68005ea commit b48b905

File tree

3 files changed

+160
-35
lines changed

3 files changed

+160
-35
lines changed

CHANGELOG.md

Lines changed: 157 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,165 @@
11
# Changelog
22

3-
## [Unreleased] - 2025-07-19
4-
5-
### Added
6-
- **New Required Fields Support**: Added support for the latest IETF vCon specification requirements
7-
- **vCon Object Level**:
8-
- `extensions` field for declaring extension capabilities
9-
- `must_support` field for specifying required extensions
10-
- Helper methods: `add_extension()`, `remove_extension()`, `get_extensions()`, `add_must_support()`, `remove_must_support()`, `get_must_support()`
11-
- **Party Object**:
12-
- `sip` field for SIP URI contact information
13-
- `did` field for Decentralized Identifier support
14-
- `jCard` field for vCard format contact information
15-
- `timezone` field for party timezone information
16-
- **Dialog Object**:
17-
- `session_id` field for session tracking
18-
- `content_hash` field for content integrity verification (replaces alg/signature)
19-
- Helper methods: `set_session_id()`, `get_session_id()`, `set_content_hash()`, `get_content_hash()`, `calculate_content_hash()`, `verify_content_hash()`
20-
- **Comprehensive Testing**: Added extensive test coverage for all new fields and functionality
21-
- **Documentation**: Updated README, usage guide, and created dedicated documentation for new required fields
22-
- **Example**: Created `samples/example_new_fields.py` demonstrating all new functionality
23-
- **Backward Compatibility**: All new fields are optional and maintain full backward compatibility
24-
25-
### Changed
26-
- Updated `_ALLOWED_VCON_PROPERTIES`, `_ALLOWED_PARTY_PROPERTIES`, and `_ALLOWED_DIALOG_PROPERTIES` to include new fields
27-
- Enhanced property handling to properly process new fields in different modes (default, strict, meta)
28-
29-
### Technical Details
30-
- New fields are properly serialized to JSON when they have values
31-
- Content hash calculation uses SHA-256 algorithm by default
32-
- Extension management prevents duplicate entries
33-
- All existing functionality continues to work unchanged
3+
## [0.7.0] - 2025-07-19
4+
5+
### 🎉 Major Release: Complete vCon 0.3.0 Specification Compliance
6+
7+
This release implements full compliance with the IETF vCon 0.3.0 specification, adding comprehensive support for all new fields, validation, and features while maintaining complete backward compatibility.
8+
9+
### ✨ Added
10+
11+
#### **vCon Object Level Features**
12+
- **Extensions Support**:
13+
- `extensions` field for declaring extension capabilities
14+
- `must_support` field for specifying required extensions
15+
- Helper methods: `add_extension()`, `remove_extension()`, `get_extensions()`
16+
- Helper methods: `add_must_support()`, `remove_must_support()`, `get_must_support()`
17+
- Automatic duplicate prevention and validation
18+
19+
#### **Enhanced Party Object Support**
20+
- **New Contact Methods**:
21+
- `sip` field for SIP URI contact information
22+
- `did` field for Decentralized Identifier (blockchain-based identity)
23+
- `jCard` field for vCard format contact information (RFC 7095)
24+
- `timezone` field for party timezone information
25+
- **Civic Address Support**: Complete GEOPRIV specification compliance
26+
- All administrative areas (a1-a6)
27+
- Street and building information (sts, hno, hns, prd, flr)
28+
- Location and identification fields (country, pc, nam, lmk, loc, pod)
29+
30+
#### **Enhanced Dialog Object Support**
31+
- **Session Management**:
32+
- `session_id` field for session tracking
33+
- `content_hash` field for content integrity verification (replaces alg/signature)
34+
- `application` field for application identification
35+
- `message_id` field for email/text dialog identification
36+
- **Content Integrity**:
37+
- `calculate_content_hash()` method with SHA-256 support
38+
- `verify_content_hash()` method for integrity verification
39+
- Automatic content hash calculation for external files
40+
41+
#### **Party History Event Tracking**
42+
- **New PartyHistory Class**: Complete implementation of party history events
43+
- Support for all 6 specification event types: `join`, `drop`, `hold`, `unhold`, `mute`, `unmute`
44+
- Event validation with `VALID_EVENTS` list
45+
- ISO 8601 time serialization for all events
46+
- Proper error handling for invalid events
47+
48+
#### **Enhanced Media Type Support**
49+
- **Specification-Compliant Media Types**:
50+
- Added `audio/x-mp3` and `audio/x-mp4` (specification required)
51+
- Enhanced video format support (MP4, WebM, AVI, MKV, MOV, FLV, 3GP)
52+
- Complete audio format coverage (WAV, MP3, MP4, OGG, WebM, AAC)
53+
- Image and document support (JPEG, TIFF, PDF)
54+
55+
#### **Disposition Values for Incomplete Dialogs**
56+
- **Complete Disposition Support**: All 6 specification values implemented
57+
- `no-answer`: Call attempted but no answer
58+
- `congestion`: System load prevented completion
59+
- `failed`: Call/connection failed
60+
- `busy`: Party was busy
61+
- `hung-up`: Party hung up before conversation
62+
- `voicemail-no-message`: Voicemail answered but no message left
63+
- **Validation**: Automatic validation for incomplete dialog types
64+
65+
#### **Transfer Dialog Enhancements**
66+
- **Updated Field Names**: Consistent underscore naming convention
67+
- `transfer-target``transfer_target`
68+
- `target-dialog``target_dialog`
69+
- **Enhanced Transfer Support**: Complete transfer operation tracking
70+
71+
#### **Comprehensive Documentation**
72+
- **Updated Class Documentation**: Complete docstrings for all classes
73+
- Vcon class with vCon 0.3.0 feature documentation
74+
- Party class with new contact method documentation
75+
- Dialog class with session and content hash documentation
76+
- CivicAddress class with GEOPRIV compliance documentation
77+
- PartyHistory class with event tracking documentation
78+
- **Enhanced README**: Comprehensive usage examples and feature documentation
79+
- **API Documentation**: Complete API reference with examples
80+
81+
### 🔧 Changed
82+
83+
#### **Property Handling**
84+
- **Updated Allowed Properties**: All new fields added to property lists
85+
- `_ALLOWED_VCON_PROPERTIES`: Added extensions, must_support
86+
- `_ALLOWED_PARTY_PROPERTIES`: Added sip, did, jCard, timezone
87+
- `_ALLOWED_DIALOG_PROPERTIES`: Added session_id, content_hash, application, message_id
88+
- **Enhanced Property Processing**: Improved handling in all modes (default, strict, meta)
89+
90+
#### **Validation Enhancements**
91+
- **Comprehensive Validation**: Enhanced validation for all new fields
92+
- Party history event validation
93+
- Disposition value validation for incomplete dialogs
94+
- Media type validation with specification compliance
95+
- Civic address field validation
96+
- **Backward Compatibility**: All validation maintains backward compatibility
97+
98+
#### **Serialization Improvements**
99+
- **ISO 8601 Compliance**: All datetime fields properly serialized
100+
- **Content Hash Integration**: Automatic content hash calculation and verification
101+
- **Extension Management**: Proper serialization of extensions and must_support fields
102+
103+
### 🧪 Testing
104+
105+
#### **Comprehensive Test Coverage**
106+
- **149 Tests Passing**: Complete test suite with 7 skipped (advanced features)
107+
- **New Feature Tests**: Extensive testing for all new vCon 0.3.0 features
108+
- Party history event validation tests
109+
- Disposition value validation tests
110+
- Media type validation tests
111+
- Extension management tests
112+
- Content hash calculation tests
113+
- **Backward Compatibility Tests**: Verification that existing functionality works unchanged
114+
- **Validation Tests**: Comprehensive validation testing for all new fields
115+
116+
### 📚 Documentation
117+
118+
#### **Complete Documentation Update**
119+
- **Class Documentation**: Updated all class docstrings with vCon 0.3.0 features
120+
- **README Enhancement**: Comprehensive usage examples and feature documentation
121+
- **API Reference**: Complete API documentation with examples
122+
- **Workplan Documentation**: Complete implementation tracking in IETF-123-WORKPLAN.md
123+
124+
### 🔄 Migration Support
125+
126+
#### **Version Migration**
127+
- **Automatic Migration**: Seamless migration from older vCon versions
128+
- **Strict Mode Support**: Optional strict version checking
129+
- **Backward Compatibility**: Full compatibility with existing vCon files
130+
131+
### 🔑 Security
132+
133+
#### **Enhanced Security Features**
134+
- **Content Integrity**: SHA-256 content hashing for external files
135+
- **Digital Signatures**: JWS support for vCon signing
136+
- **Validation**: Comprehensive validation for all security-related fields
137+
138+
### 📄 Sample Files
139+
140+
#### **Updated Sample Files**
141+
- **Version 0.3.0 Compliance**: All sample files updated to vCon 0.3.0
142+
- **New Field Examples**: Sample files demonstrating new features
143+
- **Backward Compatibility**: Existing sample files continue to work
144+
145+
### 🔧 Technical Details
146+
147+
#### **Implementation Quality**
148+
- **149 Tests Passing**: Comprehensive test coverage
149+
- **Zero Breaking Changes**: Complete backward compatibility
150+
- **Specification Compliance**: Full vCon 0.3.0 specification implementation
151+
- **Performance**: Optimized implementation with minimal overhead
152+
- **Error Handling**: Comprehensive error handling and validation
153+
154+
#### **Code Quality**
155+
- **Type Hints**: Complete type annotation coverage
156+
- **Documentation**: Comprehensive docstrings and comments
157+
- **Linting**: Clean code with minimal linting issues
158+
- **Modularity**: Well-structured, maintainable code
34159

35160
---
36161

37-
## [Previous Version]
162+
## [0.6.0] - Previous Version
38163

39164
- Updated the `__init__` methods in `Dialog` and `Party` classes to accept additional keyword arguments (`**kwargs`) for flexibility.
40165
- Simplified attribute assignment by using `locals()` to set non-None values.

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[tool.poetry]
22
name = "vcon"
3-
version = "0.6.0"
4-
description = "The vCon library"
3+
version = "0.7.0"
4+
description = "The vCon library - Complete vCon 0.3.0 specification implementation"
55
authors = ["Thomas McCarthy-Howe <ghostofbasho@gmail.com>"]
66
license = "MIT"
77
readme = "README.md"

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setup(
77
name="vcon",
8-
version="0.5.0",
8+
version="0.7.0",
99
author="Thomas McCarthy-Howe",
1010
author_email="ghostofbasho@gmail.com",
1111
description="A package for working with vCon containers",

0 commit comments

Comments
 (0)