|
| 1 | +# Changelog |
| 2 | + |
| 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 |
| 159 | + |
| 160 | +--- |
| 161 | + |
| 162 | +## [0.6.0] - Previous Version |
| 163 | + |
1 | 164 | - Updated the `__init__` methods in `Dialog` and `Party` classes to accept additional keyword arguments (`**kwargs`) for flexibility. |
2 | 165 | - Simplified attribute assignment by using `locals()` to set non-None values. |
3 | 166 | - Enhanced the `to_dict` method in `Dialog` to return all non-None attributes. |
|
0 commit comments